我正在使用第三方库来公开表单函数的函数(arg1,arg2,successFunction,errorFunction)。
为了防止我的代码深层嵌套成功函数,我想使用Promise.all
这可能吗?如果是这样,怎么样?
答案 0 :(得分:1)
您可以为第三个库创建一个Promise包装器:
function Promise_wrapper(arg1, arg2){
return new Promise(function (resolve, reject){
yourLib(arg1, arg2, function(result){
resolve(result)
}, function(error){
reject(error)
})
});
}
现在,您可以使用Promise.all()
Promise_wrapper
答案 1 :(得分:0)
您可以使用以下承诺:
function yourMethodReturningPromise(arg1, arg2) {
return new Promise((resolve, reject) => {
yourFunctionUsingCallback(arg1, arg2, (something) => resolve(something), () => reject("errors")).
});
}
您可以像下面一样使用yourMethodReturningPromise:
yourMethodReturningPromise(arg1, arg2).then((res) => {
console.log("success: ", res);
}, (err) => console.log("errors"))
答案 2 :(得分:0)
这很简单:Use the Promise
constructor只是将resolve
作为successFunction回调传递,将reject
作为errorFunction回调传递:
var promise = new Promise((resolve, reject) => {
libraryFunction(arg1, arg2, resolve, reject);
});
您可能希望将此包装在仅使用arg1
和arg2
作为参数的辅助函数中并返回承诺。