Promise.all()。then()解决吗?

Promise.all()。then()解决吗?,第1张

Promise.all()。then()解决吗?

但这似乎不是正确的方法。

确实,这是执行此 *** 作的正确方法(或者至少 执行此 *** 作
正确方法)。这是Promise的关键方面,它们是一个管道,数据可以由管道中的各种处理程序处理。

例:

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

catch
为简洁起见,省略了处理程序。在生产代码中, 始终 传播承诺或处理拒绝。)

我们从中看到的输出是:

第一把手[1,2]二级处理者[10,20]

…因为第一个处理程序将两个promise(

1
2
)的分辨率作为一个数组,然后创建一个新数组,每个数组都乘以10并返回它。第二个处理程序获取第一个处理程序返回的内容。

如果您正在执行的其他工作是同步的,则还可以将其 放在 第一个处理程序中:

例:

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

…但是如果它是异步的,您将不想这样做,因为它最终会嵌套,并且嵌套会很快失去控制。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5476770.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存