javascript - Promise.all 是在什么规范中引入的?
问题描述
我正在尝试记录一个常见面试问题的解决方案,以及解决方案如何随着语言更新而改变。
例如,在 ES2015 中引入了 const & let,使问题更容易解决。
Promise.all 是在哪一年引入的?
相关代码
// solution using promises
//
function asyncMap(tasks, callback){
tasks = tasks.map(task => new Promise(task))
return Promise.all(tasks)
.then(callback);
}
// solution using let and const introduced in ES2015
// released in 2015 and sometimes referred to as ES6
function asyncMap1(tasks, callback) {
const results = [];
let count = 0;
for (let i = 0; i < tasks.length; i++) {
tasks[i](function (val) {
results[i] = val;
count++;
if (count === tasks.length) {
callback(results);
}
});
}
};
// before let was available an IIFE would be needed
//
function asyncMap2(tasks, callback) {
var results = [];
var count = 0;
for (var i = 0; i < tasks.length; i++) {
(function (i) {
tasks[i](function (val) {
results[i] = val;
count++;
if (count === tasks.length) {
callback(results);
}
});
})(i);
}
};
解决方案
推荐阅读
- ms-access - PowerPivot 连接多个带有日期的表的问题
- arrays - Bash Mapfile 或在 grep 文件内容时读取
- javascript - 如何将行添加到第一个空行?带有 chrome 扩展的 Google 电子表格 API
- angular - 执行可信脚本
- security - Odoo 安全,防止登录用户使用 jsonrpc 访问未受保护的表?
- ffmpeg - 我可以从视频中提取音频剪辑(一个单词)并使用 FFMPEG/libvlcsharp 在同一视频的不同点/时间线上插入吗?
- visual-studio - 如何在 Azure 测试管理器上“批量克隆”测试用例?
- javascript - 花括号 {} 内的函数调用
- javascript - TypeError:无法设置未定义的属性“xxx”
- logstash - 如何在 Logstash 中获取部分 Filebeat 源文件名