Как использовать shouldSelectItemAt при ожидании ввода пользователя из оповещения?

Я просто написал пользовательскую функцию promise.all() и использовал ее вместо стандартного Promise.all(). Если все обещания разрешены, он выполняет точно так же, как и стандартный. Если одно из других обещаний отклонено, оно возвращает первое, которое отклонено так же, как и стандартное, но в отличие от него ждет всех обещаний разрешить / отклонить:

var promise = {};  // custom namespace for promise-related stuff

promise.all = function(values)
{
  var e;

  return Promise.all(values.map(function(value) {
    return Promise.resolve(value).catch(function(error) {
      e = e || error;
    });
  })).then(function(values2) {
    if(e)
      throw e;

    return values2;
  });
};

Мы можем пойти еще дальше, чтобы нежно расширьте стандарт Promise.all() одним дополнительным параметром wait следующим образом:

(function() {
  var stdAll = Promise.all;

  Promise.all = function(values, wait) {
    if(!wait)
      return stdAll.call(Promise, values);

    return promise.all(values);
  }
})();

Это может быть разумным, так как новая версия обратно совместима со стандартной, просто расширяя ее функциональность. (Мы можем полностью избежать пользовательского пространства имен promise - он используется для краткости, чтобы показать эту идею.)

Люди, которые разрабатывают стандарты - почему бы не включить это в новый стандарт Promise?

0
задан Dennis 31 March 2019 в 00:03
поделиться