生命不息,学习不止

js中的Promise

var p = new Promise((resolve, reject) => {
  setTimeout(() => {
    resolve(111);
  }, 1000);
});

p.then(result => {
  console.log(result);
  return result;
}).then(result => {
  console.log(result);
}).catch(error => {
  console.log(error);
})

知识点:

  1. Promise链式调用时,上一层必须return结果下一层才会接收到,否则是undefined;
  2. Promise链式调用时,如果只在最后加了catch函数,那么Promise链中的任意一层有错误都会触发catch函数;
  3. 如果Promise没有catch函数的话,或者第二个回调函数接收错误的话,Promise的错误将会直接抛出;
  4. 如果想要单独处理Promise链中的每一层的错误时,直接在then后的回调函数后再写一个函数即可接收到错误,这种写法不影响后面的链式调用;
    var p = new Promise((resolve, reject) => {
      setTimeout(() => {
        reject(111);
      }, 1000);
    });
    
    p.then(result => {
      console.log(result);
      return result;
    }, error => {
      console.log(error);
      return 2222;
    })
赞(1)
未经允许不得转载:Mxue note » js中的Promise