在Promises中传递多个参数

时间:2016-07-12 03:11:26

标签: javascript promise es6-promise

我想在promise链中传递先前解析的,返回的数据和附加参数。请参阅示例以获得说明。

下面的函数都返回一个Promise并正确执行。它只是传递额外的参数。

让我们考虑像:

这样的Promise链
API.getSomething(id).then(API.processIt)


getSomething function(id) { returns a promise with data }

processIt function(data) { process the returned data }

使用上面的语法,它可以正常工作。一旦我添加了其他参数:

API.getSomething(id).then(API.processIt(data, "random"))

processIt function(data, misc) {...} it does't work anymore. 

有没有办法在Promise链中使用先前执行的Promise的结果传递其他参数,而不需要任何额外的库?

它不是关于整个链条的设计。我知道,问题可以通过不同的设计来绕过,但是由于某些API的变化是我必须处理问题的方式。

1 个答案:

答案 0 :(得分:2)

在这一行

API.getSomething(id).then(API.processIt(data, "random"))

您正在尝试将函数作为引用传递,但您正在调用该函数。

尝试

API.getSomething(id).then(function(data){
    API.processIt(data, "random");
});