【发布时间】:2016-08-14 13:41:05
【问题描述】:
我有以下要求,我有三个异步函数 async1()、async2()、ascync3(),它们都返回承诺 现在我将调用一个函数并分别串行执行 async1、async2、async3,我想打印在 async3 之后返回的已解析承诺
这是我的主要功能
testPromiseSerially = function() {
return new promise(function(resolve,reject) {
async1().
then(function(result1) {
return async2(result1)
})
.then(function(result2){
return async3(result2)
})
.catch(function(err) {
return reject(err)
}
})
}
这是我的 async3 函数
async3 = function(params) {
return new promise(function(resolve,reject) {
return resolve("solved")
})
}
而且async1和async2也和async3类似
如果我执行这段代码
testPromiseSerially.then(function(result) {
console.log(result)
})
.catch(function (err) {
console.log(err)
})
testPromiseSerially 被调用,但没有输入“then”或“catch” block.async3 返回的 promise 是否没有转发回 testpromiseSerially()? 如何查看 async3 的结果? 我知道如果我扩展我的代码,比如添加
.then(function(result) {
return resolve(result)
})
在 async3(result) 之后,我就能看到结果了。但是我有一系列函数依赖于其他函数返回的承诺,那么我该如何处理呢?
【问题讨论】:
标签: javascript node.js asynchronous promise q