js-promises承诺库的助手Promise.priority()


var wait = function(amt, err) {

  return new Promise(function(resolve, reject) {

    setTimeout(function() {

      if (err) {

        reject(err);

      } else {

        resolve(amt);

      }

    }, amt);

  });

};



var print = function(val) {

  console.log(val);

};



Promise.priority([wait(2), wait(1)]).then(print); //2 after 2ms

Promise.priority() 使得多个Promise按照指定的优先顺序依次执行。上述代码中,虽然 wait(1)wait(2) 同时被传入,但 wait(1) 会先执行并返回结果。

注意: Promise.priority() 可能是自定义扩展,并非标准库的一部分。使用时需确保库的支持。