Node JS Promise.all() 结果命名

Hat*_*avW 1 javascript naming node.js bluebird

有没有办法为 Promisee.all 中的每个结果分配名称?

假设这是我的代码:

Promise.all([getBalls, getKids, getTeams])
.then(function (results) {
    const new_team = doSomething(results[0], results[1],results[2])
    resolve(new_team);
});
Run Code Online (Sandbox Code Playgroud)

我希望它是这样的:

Promise.all([
    balls: getBalls,
    kids: getKids,
    teams: getTeams
]).then(function (results) {
    const new_team = doSomething(balls,kids,teams)
    resolve(new_team);
});
Run Code Online (Sandbox Code Playgroud)

Arn*_*ane 6

您可以在回调函数中使用 ES2015 的数组解构.then

Promise.all([
    getBalls, 
    getKids, 
    getTeams
]).then(function ([ balls, kids, teams ]) { // <= notice the function parameters
    const new_team = doSomething(balls, kids, teams);
    resolve(new_team);
});
Run Code Online (Sandbox Code Playgroud)