Javascript Node JS Promise.all()结果命名

Javascript Node JS Promise.all()结果命名,javascript,node.js,bluebird,naming,Javascript,Node.js,Bluebird,Naming,是否有办法为受允诺人中的每个结果指定一个名称 假设这是我的代码: Promise.all([getBalls, getKids, getTeams]) .then(function (results) { const new_team = doSomething(results[0], results[1],results[2]) resolve(new_team); }); 我希望它是这样的: Promise.all([ balls: getBalls, ki

是否有办法为受允诺人中的每个结果指定一个名称

假设这是我的代码:

Promise.all([getBalls, getKids, getTeams])
.then(function (results) {
    const new_team = doSomething(results[0], results[1],results[2])
    resolve(new_team);
});
我希望它是这样的:

Promise.all([
    balls: getBalls,
    kids: getKids,
    teams: getTeams
]).then(function (results) {
    const new_team = doSomething(balls,kids,teams)
    resolve(new_team);
});
您可以在.then回调函数中使用ES2015:

Promise.all([
    getBalls, 
    getKids, 
    getTeams
]).then(function ([ balls, kids, teams ]) { // <= notice the function parameters
    const new_team = doSomething(balls, kids, teams);
    resolve(new_team);
});
您可以在.then回调函数中使用ES2015:

Promise.all([
    getBalls, 
    getKids, 
    getTeams
]).then(function ([ balls, kids, teams ]) { // <= notice the function parameters
    const new_team = doSomething(balls, kids, teams);
    resolve(new_team);
});
在最近的node.js>NodeV6.x版本中,您可以使用destructuring和do

Promise.all([getBalls, getKids, getTeams])
.then(function ([balls, kids, teams]) {
    const new_team = doSomething(results[0], results[1],results[2])
    resolve(new_team);
});
在最近的node.js>NodeV6.x版本中,您可以使用destructuring和do

Promise.all([getBalls, getKids, getTeams])
.then(function ([balls, kids, teams]) {
    const new_team = doSomething(results[0], results[1],results[2])
    resolve(new_team);
});

也许Promise.props看起来更容易使用。


也许Promise.props看起来更容易使用。


谢谢@thomastiebaud!谢谢@thomastiebaud!谢谢@ArnelleBalane@HatzavWolff没问题,很乐意帮忙:谢谢@ArnelleBalane@HatzavWolff没问题,很高兴提供帮助:您要求的API看起来与Bluebird的承诺完全一样。道具:。你像你指定的那样传入一个对象,但不是在数组中,你得到的结果是一个具有相同键的对象。谢谢@jfriend00这真的很酷,但不完全是我想要的。你说的不是你想要的是什么意思?这正是你所要求的。Promise.all根本无法按您要求的方式工作,因此您需要新代码才能获得按此方式工作的函数。您要求的API与Bluebird的Promise.props完全相同:。你像你指定的那样传入一个对象,但不是在数组中,你得到的结果是一个具有相同键的对象。谢谢@jfriend00这真的很酷,但不完全是我想要的。你说的不是你想要的是什么意思?这正是你所要求的。Promise.all根本不能按您要求的方式工作,因此您需要新代码来获得一个按这种方式工作的函数。