Illvili / wxDefer

微信小程序API增强

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

wxDefer

将微信小程序中接受 { success: callback, fail: callback, complete: callback } 的函数转化为类似 jQuery.Deferred 的形式

原接口对比wxDefer

wx.request({
    url: 'https://example.com/data.json',
    data: {
        _: +new Date
    },
    success: (response) => {
        if ('request:ok' == response.errMsg) {
            this.setData({
                exampleData: response.data
            })
        }
    },
    fail: (response) => {
        console.log(response)
    }
})

使用 wxDefer

var wxDefer = require('../../wxDefer.js')

wxDefer.request({
    url: 'https://example.com/data.json',
    data: {
        _: +new Date
    }
}).done((response) => {
    if ('request:ok' == response.errMsg) {
        this.setData({
            exampleData: response.data
        })
    }
}).fail((response) => {
    console.log(response)
})

支持的微信API列表

完整的微信API列表

目前同步了微信所有可使用{ success: callback, fail: callback, complete: callback }参数的API

其它 API

wxDefer.Deferred

Deferred

类似jQuery.Deferred(文档)请注意:当前wxDeferred只是最小支持,部分jQuery.Deferred的接口并不支持

函数 返回类型 说明
state() pending | resolved | rejected 当前Deferred的状态
done(callback) Deferred() Deferred()状态变成resolved时的回调函数
fail(callback) Deferred() Deferred()状态变成rejected时的回调函数
always(callback) Deferred() Deferred()状态变成resolvedrejected时均会触发的回调函数
resolve(...args) 改变Deferred的状态为resolved并使用args调用相关回调函数
resolveWith(thisObj, ...args) 改变Deferred的状态为resolved并使用args调用相关回调函数(可以设置回调函数中的this
reject(...args) 改变Deferred的状态为resolved并使用args调用相关回调函数
rejectWith(thisObj, ...args) 改变Deferred的状态为resolved并使用args调用相关回调函数(可以设置回调函数中的this

另请注意:wxDefer.Deferred是类的构造函数,而jQuery.Deferred()则返回初始化后的对象

var defer = new wxDefer.Deferred()
defer.done(_ => console.log('done: ', _)).fail(_ => console.warn('fail'))

defer.resolve('success!')
// in console:
// done: success!

wxDefer.MakeDeferred()

将可以接受 { success: callback, fail: callback, complete: callback } 的API函数转化为 Deferred 的形式

wxDefer未更新的情况增加Deferred形式的函数

function demoFunction(config) {
    // config 包含 success, fail, complete 三个回调函数
    // ...
}

var demoFunctionDeferred = wxDefer.MakeDeferred(demoFunction)

更新

  • 2018.4.13 v1.0.2 fix: options可能为undefined
  • 2018.4.13 v1.0.1 fix: 函数列表错误
  • 2018.4.13 v1.0.0 同步了微信小程序函数列表
  • 2016.9.28 v0.1.0 初始版本

About

微信小程序API增强


Languages

Language:JavaScript 100.0%