Git Product home page Git Product logo

wxdefer's Introduction

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 初始版本

wxdefer's People

Contributors

illvili avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

ofroad bravf itxcx

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.