Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Promise.all是在什么规范中引入的?_Javascript_Asynchronous_Promise - Fatal编程技术网

Javascript Promise.all是在什么规范中引入的?

Javascript Promise.all是在什么规范中引入的?,javascript,asynchronous,promise,Javascript,Asynchronous,Promise,我试图记录一个常见面试问题的解决方案,以及该解决方案如何随着语言更新而改变 例如,ES2015中引入了const&let,使问题更容易解决 Promise是在哪一年推出的 相关代码 通过查看数据,这是在ES2015。具体到2015年6月 ECMAScript®2015语言规范 25.4.4.1承诺。所有承诺 如果您还想知道您是否可以使用它,只需在“我可以使用还是遵循?”上询问它。通过查看ES2015上的信息。具体到2015年6月 ECMAScript®2015语言规范 25.4.4.1承诺。所有

我试图记录一个常见面试问题的解决方案,以及该解决方案如何随着语言更新而改变

例如,ES2015中引入了const&let,使问题更容易解决

Promise是在哪一年推出的

相关代码

通过查看数据,这是在ES2015。具体到2015年6月

ECMAScript®2015语言规范

25.4.4.1承诺。所有承诺

如果您还想知道您是否可以使用它,只需在“我可以使用还是遵循?”上询问它。

通过查看ES2015上的信息。具体到2015年6月

ECMAScript®2015语言规范

25.4.4.1承诺。所有承诺


如果您还想知道您是否可以使用它,只需在“我可以使用吗”或“遵循吗”中询问即可。

介绍时间有点小,但最重要的是浏览器支持。完全同意,但您如何量化这一点?Chrome可能实施的日期是什么?根据这个链接。。。Chrome在规范之前就支持它。它不仅涉及到实现,还涉及到浏览器的使用。如果一个功能是在最新版本中实现的,但是许多人仍然使用以前的版本,那么这并不重要。无论如何,babel+browserslist允许您使用最新功能,而无需担心浏览器版本。所以我想说,创建一个功能的巴别塔插件是最重要的;在新功能进入EcmaScript之前,它必须至少在一个浏览器中受支持,主要位于标志后面。这是如何将新功能引入语言的一部分。引入时间有点小,但浏览器支持才是最重要的。完全同意,但您如何量化这一点?Chrome可能实施的日期是什么?根据这个链接。。。Chrome在规范之前就支持它。它不仅涉及到实现,还涉及到浏览器的使用。如果一个功能是在最新版本中实现的,但是许多人仍然使用以前的版本,那么这并不重要。无论如何,babel+browserslist允许您使用最新功能,而无需担心浏览器版本。所以我想说,创建一个功能的巴别塔插件是最重要的;在新功能进入EcmaScript之前,它必须至少在一个浏览器中受支持,主要位于标志后面。这是新特性如何引入语言的一部分。我在谷歌上搜索了它,但没有这么快找到它,例如MDN文档指向最新的规范ES2020。你是怎么找到这个的?@j.a.你可能跟了这个,但我用了MDN的。。。。有趣的铬支持它之前的规格。。。我在谷歌上搜索了一下,但没有这么快找到它,例如MDN文档指向最新的规范ES2020。你是怎么找到这个的?@j.a.你可能跟了这个,但我用了MDN的。。。。有趣的铬支持它之前的规格。。。
// 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);
  }
};