我正在使用一个节点库,它允许进行简单的http请求并返回一个承诺 - 这很好地工作,因为它允许多个并行进行,而且我然后用Promise.all()
收集它们。但是,http请求只是返回一个字符串,我需要知道关于每个请求的一些额外的标识信息。所以我通过一种方法来做到这一点,即将请求承诺中的某些内容链接起来,并将这些信息添加进来。这是我迄今为止所获得的代码,显示将一个此类请求添加到稍后将收集的承诺数组中:向承诺的结果添加额外的数据
var promises = [];
promises.push(new Promise(function(resolve, reject){
ReqPromise('http://some.domain.com/getresult.php')
.then(function(reqResult) {
resolve({
source: 'identifier',
value: reqResult
});
});
}));
而这就是我回来的这个承诺,当它决定:
{
source: 'identifier'
value: 1.2.3.4
}
这是理想的方式来“标记”的承诺,结果呢?还是有什么承诺我误解了,这意味着我不需要像上面那样创造额外的承诺?请注意,ReqPromise
位于外部库中,因此很难使其获取额外的参数并将其返回。
OK,请忽略的问题1 - 我还以为是打印结果_inside_它处理解决承诺的循环,但事实证明我不是,所以这是整个阵列 - 我发现,一旦我将多于一件事情推入'promises'。我的错。问题2仍然存在 - 这是达到预期结果的最佳方式吗? – dsl101
避免['Promise' constructor antipattern](http://stackoverflow.com/q/23803743/1048572)! – Bergi
请[编辑]您的问题,以显示您如何检查您的结果,或删除帖子中的第一个问题。 – Bergi