多个异步请求同时发出,对其结果进行有序执行~

这是一道面试时遇到的面试题,当时没手写出来,现在抽空敲出来了,补一下~
原题是这样的:

有10个ajax请求,要求同时发出,然后以次展示返回的数据,要求请求和展示相互之间不阻塞。

(async () => {
    let arr = await task(1000)
    for(let i = 0; i < 10; i++) {
        let j = await arr[i]
        console.log(j)
    }
})()
function task(timer) {
    let i = []
    let time = [9, 1, 2, 4, 6, 1, 2, 3, 5, 9]
    for(let j = 0; j < 10; j++) {
        i.push(new Promise((res, rej) => {
            setTimeout(() => {
                res(timer*time[j] + 'res')
            }, timer*time[j]);
        }))
    }
    return i
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一:什么是闭包?闭包的用处? (1)闭包就是能够读取其他函数内部变量的函数。在本质上,闭包就 是将函数内部和函数外...
    xuguibin阅读 13,273评论 1 52
  • 第一章 http 协议 ① 学习http协议的目标 1. 调试ajax应用程序中"看不见模不着"的错误 2. ...
    fastwe阅读 3,240评论 0 0
  • 27、移动端响应式布局开发 响应式布局开发 1、什么是响应式布局开发?把我们开发完成的产品,能够让其适配不同的设备...
    萌妹撒阅读 4,793评论 0 0
  • 原文地址:https://juejin.im/entry/5b6259036fb9a04fa42fce3c 有趣有...
    Albert陈凯阅读 4,461评论 0 1
  • 一、简历准备 1、个人技能 (1)自定义控件、UI设计、常用动画特效 自定义控件 ①为什么要自定义控件? Andr...
    lucas777阅读 10,623评论 2 54