Promise 两种传参区别?

let fn = new Promise((resolve, reject) => {
  setTimeout(() => {
    reject("ok");
  }, 1000);
});

fn.then().catch(console.log);       // 方式一
fn.then(console.log, console.log);  // 方式二
阅读 4.4k
4 个回答

没区别,只是第一种链式调用的代码更好看。

基本没什么区别,只是catch还能捕获then里抛出的错误

fn.then(function(){
  throw new Error('then error');
})
.catch(function(err){
  console.log(err.message);
});

第一种方式是先执行A,如果A出错了就执行B,不出错就结束了。
第二种方法的两个回调是二选一的,不是A就是B, 即便A中出错,B也不会被执行。

多个 promise 连续调用的时候就有不同了呀。。。

clipboard.png

clipboard.png

clipboard.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题