Promise中的异常处理

1、在promise外部无法捕获异常
try{

    var f = new Promise(function(resolve, reject){

      a + 2;

    setTimeout(resolve.bind(this, 1,2,4) , 1000)

  });

}catch(err){

  console.log(err)

}

2、then的onResolved函数中的异常无法进入该then的onRejected方法,即不会执行onRejected,所以无法捕获onResolved方法中的异常,而P.catch可以

var f = new Promise(function(resolve, reject){

  setTimeout(resolve.bind(this, 1,2,4) , 1000)

});

f.then(function(){

  throw 123;

}, function(err){

// 不会执行

  console.log(1);

  console.log(err)

})

.catch(function(err){

  console.log(2);

  console.log(err)

})

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注