将callback改造成Promise

2,343 阅读1分钟

callback形式

import request from 'lib/request'
#假设request返回值不是Promise
function getList(params, success, fail) {
    return request(params, success, fail)
}
#这样使用
getList({page:1},() => {}, () => {})

如果希望以Promise的形式调用,有两种方式。

方式1,直接在业务代码处使用Promise

const promise = new Promise(function(resolve, reject){
    getList({page: 1}, resolve, reject)
})
p1.then(success, fail)

方法2,在getList或request中返回Promise

#修改getList
function getList(params) {
    return new Promise(function(resolve, reject) {
        request(params, resolve, reject)
    })
}
#使用
const p1 = getList({page: 1})
p1.then(success, fail)