在 Promises 中传递多个参数

Pass multiple parameters within Promises

我想在承诺链中传递先前解析的、returned 数据和附加参数。请参阅示例进行说明。

下面的函数既 return 一个 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 的变化,这是我必须处理问题的方式。

这条线

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

您正试图将函数作为引用传递,但您却调用了该函数。

尝试

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