当承诺永远无法解决时,打破循环

时间:2018-08-29 19:45:31

标签: javascript

我有这段代码遍历一系列异步函数(async函数和返回promise的函数),调用每个函数,等待其结果,记录到控制台,然后继续进行下一个。除非有人忘记解决/拒绝他们的诺言,否则这会很好。该应用程序将停止运行,除了日志已停止打印以外,没有任何其他指示。

(async function() {

  var foo = [
    async() => 1,
    () => Promise.resolve(2),
    new Promise((resolve, reject) => {}), // This will cause it to stop
    async() => 3,
    () => Promise.resolve(4),
  ]

  for (const bar of foo) {
    const baz = await bar()
    // does not proceed if bar doesn't resolve/reject.
    console.log(baz)
  }

})()

有没有办法设置本地设置的超时时间?还是打破循环?告诉运行时发出警告?还是必须通过自定义完成此超时/中断/警告?该代码主要是用Node编写的,但我认为这也可能适用于浏览器JS。

0 个答案:

没有答案