哎**,记得以前写大文件分块传输的时候遇到异步迭代问题特别头疼,多年前es也没这些特性。整的人都不好了。**
很久没看过书了,天天搞工作,不得闲,业务都快荒废了最近恶补看书看到了es出了两个特别的有用的特性:
异步迭代器
这真特别有用,以后在处理一些异步有序队列问题就简单了,
async function func(array) {
for await (let i of array) {
//异步迭代
someFunc(i);
}}
直接就一步到位了。
对比看了以前写的异步迭代的大堆代码,真的要流泪。
Promise.allSettled
遇到多个请求的时候,原始的做法是:
一个一个的串起来调用。
若要同时请求又要通过多个结果进行下一步:
采用用Promise.all,满足大部分场景
还有一种情况是:
同时请求的同时,某一个异步错误了阻塞了,不会中断后面的请求,Promise.allSettled就简化了这个问题,用法和Promise.all一样,返回的是一个数组。
Promise.allSettled([
Promise.resolve("coffe"),
Promise.reject("1891")]
).then(
arr => {
console.log(arr);
},
});
//打印 [ { status: "fulfilled", value: "coffe"},{ status: "rejected", reason: "1891" } ]