蓝鸟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除非我读这个错误…

谁能帮忙?

谢谢

你应该可以使用蓝鸟的Promise.props()来做到这一点:

 Promise.props({ participants: ParticipantsService.retrieveActiveParticipantsFromTheLocalDb(), events: EventService.retrieveActiveEventsFromTheLocalDb(), heats: HeatService.retrieveActiveHeatsFromTheLocalDb() }).then(res.render.bind(res, 'runners/runners'))