В какой спецификации был представлен Promise.all? - PullRequest
1 голос
/ 26 января 2020

Я пытаюсь задокументировать решение распространенного вопроса об интервью и то, как решение изменилось с обновлением языка.

Например, const & let были введены в ES2015, чтобы упростить решение проблемы.

В каком году спецификации был введен 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);
  }
};

1 Ответ

4 голосов
/ 26 января 2020

Посмотрев на документ спецификации , это было на ES2015. Подробнее c в июне 2015 г.

Спецификация языка ECMAScript® 2015

25.4.4.1 Promise.all (повторяемый)

Если вы также хотите узнать, можете ли вы использовать его, просто спросите его по адресу Могу ли я использовать или перейдите по по этой ссылке .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...