【问题标题】:Promise All Reject Issue承诺所有拒绝问题
【发布时间】:2018-02-18 14:43:00
【问题描述】:

我使用 promise all 函数来运行多个 promise。我收到错误 Uncaught (in promise) reject,但在这里我使用了 catch 块。我不知道它是如何引发错误的。

function fetch(data) {
  new Promise(function(resolve,reject) {
    data ? reject('reject') : resolve('resolve')
  })
}

Promise.all([fetch(), fetch('sssssssss')])
 .then(function(data) {
    console.log('all finished',data)
  })
 .catch(function(error) {
   alert('ssssssssssssss')
 })

fetch()

【问题讨论】:

  • 你的 fetch 函数没有返回任何东西 - 如果你想 return 承诺,试试return new Promise.......

标签: javascript promise


【解决方案1】:

见下面的代码。希望它能解决你的问题。

function fetch(data) {
  return new Promise(function(resolve,reject) {
    data ? reject('reject') : resolve('resolve')
  })
}

Promise.all([fetch(), fetch('sssssssss')])
 .then(function(data) {
    console.log('all finished',data)
  })
 .catch(function(error) {
   alert('ssssssssssssss')
 })

fetch()

【讨论】:

  • 感谢您提供代码 sn-p,它可能会提供一些有限的即时帮助。通过描述为什么这是解决问题的好方法,正确的解释将极大地改进其long-term value,并使其对有其他类似问题的未来读者更有用。请编辑您的答案以添加一些解释,包括您所做的假设。
猜你喜欢
  • 1970-01-01
  • 2019-11-25
  • 2016-10-20
  • 1970-01-01
  • 2017-09-04
  • 2013-09-16
  • 2019-04-09
  • 2017-03-12
  • 2015-08-26
相关资源
最近更新 更多