首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Promise.all().then()解析?

Promise.all().then()解析?
EN

Stack Overflow用户
提问于 2015-10-12 12:53:55
回答 2查看 203K关注 0票数 105

使用Node 4.x。当您有一个Promise.all(promises).then()时,解析数据并将其传递给下一个.then()的正确方法是什么

我想做这样的事情:

代码语言:javascript
复制
Promise.all(promises).then(function(data){
  // Do something with the data here
}).then(function(data){
  // Do more stuff here
});

但我不确定如何将数据传送到第二个.then()。我不能在第一个.then()中使用resolve(...)。我想我可以做到:

代码语言:javascript
复制
return Promise.all(promises).then(function(data){
  // Do something with the data here
  return data;
}).then(function(data){
  // Do more stuff here
});

但这似乎不是正确的方法...对此的正确方法是什么?

EN

回答 2

Stack Overflow用户

发布于 2019-09-08 14:23:34

今天,NodeJS支持新的async/await语法。这是一种简单的语法,并使生活变得更容易

代码语言:javascript
复制
async function process(promises) { // must be an async function
    let x = await Promise.all(promises);  // now x will be an array
    x = x.map( tmp => tmp * 10);              // proccessing the data.
}

const promises = [
   new Promise(resolve => setTimeout(resolve, 0, 1)),
   new Promise(resolve => setTimeout(resolve, 0, 2))
];

process(promises)

了解更多:

票数 3
EN

Stack Overflow用户

发布于 2020-01-22 02:47:59

你的return data方法是正确的,这是promise chaining的一个例子。如果您从.then()回调返回一个promise,JavaScript将解析该promise并将数据传递给下一个then()回调。

只需小心,并确保您使用.catch()处理错误。Promise.all() rejects as soon as one of the promises in the array rejects

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33073509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档