引言

这是一道关于Promise的题目。因之前复习的关于Promise的内容都差不多忘了,再加上平时用得少,所以提交的时候只交了个半成品。现将我的答案记录在这

原题

const timeout = ms => new Promise((resolve, reject) => {setTimeout(() => {resolve();}, ms);
});const ajax1 = () => timeout(2000).then(() => {console.log('1');return 1;
});const ajax2 = () => timeout(1000).then(() => {console.log('2');return 2;
});const ajax3 = () => timeout(2000).then(() => {console.log('3');return 3;
});const mergePromise = ajaxArray => {// 在这里实现你的代码
};// mergePromise([ajax1, ajax2, ajax3])mergePromise([ajax1, ajax2, ajax3]).then(data => {console.log('done');console.log(data); // data 为 [1, 2, 3]
});// 分别输出
// 1
// 2
// 3
// done
// [1, 2, 3]

我的答案

const mergePromise = ajaxArray => {// 在这里实现你的代码return new Promise((resolve,reject) => {ajaxArray.push(Promise.resolve(() => null));let data = [],arrLen = ajaxArray.length - 1;ajaxArray.reduce((calc,cur,index) => {return calc.then((res) => {res !== undefined?data.push(res):null;return index !== arrLen?cur():resolve(data);});},Promise.resolve());});
};

应该还有更优雅的解决方法

Alibaba秋招前端测试题相关推荐

  1. 2019 秋招前端面试总结

    总结一下自己的秋招面试题,希望能对自己什么部分有所欠缺有更好的认识,并能给其他人提供经验,帮助找工作的人查缺补漏. CVTE 前端一面 菜逼的腾讯前端一面 顺丰科技前端视频一面 CVTE 前端视频二面 ...

  2. 2021年秋招前端复盘

    文章目录 1.实现元素的居中 2.flex布局以及属性 3.ES6新特性 4.数组有哪些方法?map和filter的区别?for of和for in的区别? 5.js异步有哪些方式?promise和a ...

  3. 多益网络社招iq_18年多益秋招iq测试题

    之前在讨论区看到牛友分享自己的秋招题目,我也忍不住想来分享一下自己做过的题目,很烧脑哦~好多题没啥思路,大家可以看看试一下 选择题 所给选项中选一个最合适的填入问号处使其呈现一定规律: A A B B ...

  4. 2023届秋招前端总结面试题

    1.讲一下你对flex布局的理解(深入些) 一.概念:flex布局是flexible box的缩写,任何一个容器都可以指定为弹性布局 二.轴线:有两条轴线,即主轴(main axis)和交叉轴(cro ...

  5. 快手秋招前端实习生一面面经

    普通本科毕业的我通过内推有幸参加了快手校招前端实习生面试,虽然结果不是很理想,但是成长很大.特此总结分享给各位. 1.介绍简历上的项目 简单介绍项目内容即可. 面试首个问题一般都比较自由,可以通过该问 ...

  6. 4399公司2017秋招前端笔试试卷

    1.关于数据结构,下列描述当中,正确的是() 正确答案: C 在深度为5的满二叉树中,叶子节点的个数为32 队列,栈以及二叉树都是线性结构 算法的复杂度主要包括时间复杂度和空间复杂度 在待排序的元素序 ...

  7. JS第二次授课及字节跳动2017秋招前端工程师笔试试卷涉及知识点

    JS第二次授课 一.转义字符和字符串 1.在字符串中使用转义字符输入Unicode编码.语法:\u+四位编码. 2.在网页中使用Unicode编码:语法:&#编码:(注:这里的编码要使用十进制 ...

  8. 58同城2018秋招前端笔试试题

    一.填空题(10题) 1. 号码段为131到139的11位手机号码正则校验: /^13[1-9][0-9]{8}$/ 2. 移动端,如何在html中通过链接调起拨打电话<a href=" ...

  9. 2018秋招前端笔试题(58同城)

    填空题 号码段为131到139的11位手机号码正则校验:/^13[1-9][0-9]{8}$/ 移动端,如何在html中通过链接调起拨打电话:'<a href="tel:10086&q ...

  10. 【面试真题】腾讯2018秋招前端正式试题(含答案)

    参考答案关注公众号,回复"腾讯答案"获取 01 不定向多选 1.    往下面的5阶B树中插入关键吗80后,该B树第二层的节点数为( ). A.   6 B.   7 C.   8 ...

最新文章

  1. (39.3) Spring Boot Shiro权限管理【从零开始学Spring Boot】
  2. HDU 3665 Seaside
  3. 仿拉钩app(一)---爬虫数据准备
  4. 【机器人】“市场很冷,从业者很拼” | 众多国内机器人厂商热议当前市场状态|人工智能...
  5. 60-100-340-使用-DataSource-hive相关-Flink加载hive数据源
  6. 数据可视化—如何利用R,制作DashBoard
  7. Go语言——图形界面编程
  8. OSChina 周日乱弹 —— 十大人艰不拆的网络真相!
  9. mac 下 Parallels Desktop 克隆虚拟机 product_uuid 相同
  10. 分享16个经典面试问题回答思路
  11. 小花经过春雨的一番滋润
  12. java整型_java中长整型定义
  13. 手淘流量是什么意思?手淘搜索流量怎么增加?
  14. 关于岭回归和lasso回归
  15. java高并发如何保证数据安全
  16. 系统启动其实就2个步骤BIOS和MBR(和之后的init/systemd的关系)
  17. 什么是Ubuntu PPA以及为什么要用它[技术说明]
  18. OpenGL核心技术之HDR
  19. 2021年电赛国赛B题三相AC_DC总结
  20. 反激变换器DCM模式增益推导

热门文章

  1. Git----远程仓库之添加远程库02
  2. [No0000151]菜鸟理解.NET Framework中的CLI,CLS,CTS,CLR,FCL,BCL
  3. Shell 脚本进程并发进程数控制
  4. Ural1297 最长回文子串(后缀数组+RMQ)
  5. linux(5)--补充(管道| / 重定向 / xargs)/find 与xargs结合使用/vi,grep,sed,awk(支持正则表达式的工具程序)...
  6. [原]解决百度地图多个Marker和InfoWindow时总是打开最后一个InfoWindow的问题
  7. ubuntu 开发环境的配置 (转)
  8. 关于数据库设计是否需要加入(建立)外键
  9. sql select 0 字段 某字段是不在指定的表
  10. spring mvc 简单的文件上传与下载