javascript – Promise.all().then()解析?

前端之家收集整理的这篇文章主要介绍了javascript – Promise.all().then()解析?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
使用节点4.x.当你有一个Promise.all(promises).then()什么是正确的方式来解决数据并传递给下一个.then()?

我想做这样的事情:

Promise.all(promises).then(function(data){
  // Do something with the data here
}).then(function(data){
  // Do more stuff here
});

但我不知道如何获取数据到第二.then().我不能在第一个.then()中使用resolve(…).我想到我可以做到这一点:

return Promise.all(promises).then(function(data){
  // Do something with the data here
  return data;
}).then(function(data){
  // Do more stuff here
});

但这似乎不是正确的做法…这是正确的方法

解决方法

But that doesn’t seem like the proper way to do it..

这确实是正确的做法.这是承诺的一个关键方面,它们是一条管道,数据可以由各种处理程序进行按摩.

例:

const promises = [
  new Promise(resolve => setTimeout(resolve,1)),new Promise(resolve => setTimeout(resolve,2))
];
Promise.all(promises)
  .then(data => {
    console.log("First handler",data);
    return data.map(entry => entry * 10);
  })
  .then(data => {
    console.log("Second handler",data);
  });

我们看到的输出是:

First handler [1,2]
Second handler [10,20]

…因为第一个处理程序得到两个承诺(1和2)的解析作为一个数组,然后创建一个新的数组,其中每一个乘以10并返回它.第二个处理程序得到第一个处理程序返回的内容

原文链接:https://www.f2er.com/js/152246.html

猜你在找的JavaScript相关文章