1
最新的稳定蓝鸟:蓝鸟promise.all不尊重我使用的结果为了
"bluebird": "~3.4.0",
并与下面的代码:
Promise.all([ParticipantsService.retrieveActiveParticipantsFromTheLocalDb(),
EventService.retrieveActiveEventsFromTheLocalDb(),
HeatService.retrieveActiveHeatsFromTheLocalDb()]).then(
function (results) {
var namedResults = {participants: results[0], events: results[1], heats: results[2]};
return res.render('runners/runners', namedResults);
}).catch(
function (err) {
winston.error('Failed to retrieve participants and or event details', err);
return res.send(err);
});
我希望namedResults总是有正确顺序与承诺数组的顺序相匹配的元素,但这不是真的!我每次都有不同的顺序。
我假设这是因为它是什么,它说的知更鸟的文档:http://bluebirdjs.com/docs/api/promise.all.html 除非我读这错了...
谁能帮助?
感谢
以我的经验与蓝鸟,是不尊重的顺序。看看这JSBin http://jsbin.com/sutemogilu/edit?js,console - 它完美的作品。你可以分享你的'retrieveActiveParticipantsFromTheLocalDb'函数和其他两个?也许这是关于他们的事情。顺便说一句,你可以在'Promise.all'中使用'spread'方法而不是'then'并跳过'nameResult',你可以在JSBin中看到它的注释。 –
所以要清楚:你是否认为'namedResult'中的'participants','events'和'heats'的值不正确? – robertklep
如何重现此? –