异步并发与继发

  1. 通过for... of...实现异步继发请求:
    for... of...zhi只有等上一个异步请求完成之后才能开启下一个异步请求
  2. 通过map实现异步并发请求:
    同时开启多个异步请求,将Promise保存在一个数组中,通过for of 配合await实现继发读取。
    应用:对于存在依赖关系的url内容请求等场景,可以使用该方式,并发请求多个url,节省了请求时间。
var promise = function(count)  {
        var tempPromise = new Promise((resolve, reject) => {
            console.log(count);
            setTimeout(() => resolve(`${count} : ${new Date().getSeconds()}`), 2000)
        })

        return tempPromise;
    }

    var arr = [1,2,3,4,5]

    async function logOut() {
        for (var i of arr) {
            const response = await promise(i);
            response.then()
        }
    }

    async function logOut2() {
        const textArr = arr.map(async i => {
            const response = await promise(i);
            // console.log(response)
            return response
        })

        for (var i in textArr) {
            console.log(await textArr[i])
        }
    }

logOut()的输出如下所示:


image.png

logOut2()的输入如下所示


image.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容