JavaScript Promise 类的三个方法及实例

JavaScript  Promise 类的三个方法及实例
  Promise 类有 .then() .catch() 和 .finally() 三个方法,这三个方法的参数都是一个函数,.then() 可以将参数中的函数添加到当前 Promise 的正常执行序列,.catch() 则是设定 Promise 的异常处理序列,.finally() 是在 Promise 执行的最后一定会执行的序列。 .then() 传入的函数会按顺序依次执行,有任何异常都会直接跳到 catch 序列:
  
  实例
  
  new Promise(function (resolve, reject) {
  
  console.log(1111);
  
  resolve(2222);
  
  }).then(function (value) {
  
  console.log(value);
  
  return 3333;
  
  }).then(function (value) {
  
  console.log(value);
  
  throw "An error";
  
  }).catch(function (err) {
  
  console.log(err);
  
  });
  
  执行结果:
  
  1111
  
  2222
  
  3333
  
  An error
  
  resolve() 中可以放置一个参数用于向下一个 then 传递一个值,then 中的函数也可以返回一个值传递给 then。但是,如果 then 中返回的是一个 Promise 对象,那么下一个 then 将相当于对这个返回的 Promise 进行操作,这一点从刚才的计时器的例子中可以看出来。
  
  reject() 参数中一般会传递一个异常给之后的 catch 函数用于处理异常。
  
  但是请注意以下两点:
  
  resolve 和 reject 的作用域只有起始函数,不包括 then 以及其他序列;
  
  resolve 和 reject 并不能够使起始函数停止运行,别忘了 return。

推荐阅读