我在Node.js应用程序中使用Q来实现promise并且有类似的东西,其中有一些承诺链接:
service.execute()
.then((result1) => {
return service2.execute(result1);
})
.then((result2) => {
//Here I need result1 and result2!!!
});
在第二个中,我需要使用前一个块的result1,但它不可用。有没有办法访问它?
注意:有类似的问题,但没有一个能解决Q库的问题。
答案 0 :(得分:1)
脱离你的内心承诺:
service.execute().then((result1) => {
return service2.execute(result1).then((result2) => {
// Here I have access to both result1 and result2.
// Result1 via the closure, Result2 as an argument.
});
});
这可能是最好的方法,因为获取result2
已经需要result1
。如果他们没有那样依赖彼此,你可以使用Promise.all
。