Quantcast
Channel: CNode:Node.js专业中文社区
Viewing all articles
Browse latest Browse all 14821

关于promise的一个很奇怪的问题

$
0
0

先上代码

var core = new Promise(function (resolve, reject) {
  reject(1);
})

var a = Promise.resolve({
  then: function (resolve, reject) {
    return core.then(resolve, reject).catch(function (err) {
      console.log('1:', err);
    })
  }
}).catch(function (err) {
  console.log('2:', err)
})


a.then(function () {}, function () {
  throw new Error(111)
})

问题: 为什么 throw new Error(111)抛出的错误无法被console.log('1:', err);这个函数catch而是被外面的 console.log('2:', err) catch??


Viewing all articles
Browse latest Browse all 14821

Trending Articles