Node.js - Q库,如何访问之前的值()

时间:2017-12-13 23:52:42

标签: javascript node.js promise q

我在Node.js应用程序中使用Q来实现promise并且有类似的东西,其中有一些承诺链接:

service.execute()
.then((result1) => {
  return service2.execute(result1);
})
.then((result2) => {
  //Here I need result1 and result2!!!
});

在第二个中,我需要使用前一个块的result1,但它不可用。有没有办法访问它?

注意:有类似的问题,但没有一个能解决Q库的问题。

1 个答案:

答案 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