介绍两个比较实用的ECMAScript新特性

62 阅读1分钟

**,记得以前写大文件分块传输的时候遇到异步迭代问题特别头疼,多年前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" } ]