返回

深入剖析 Promise 系列(4): then 方法在链式调用中判断 Promise 的返回

前端

好的,您需要的文章如下:

Promise 的 then 方法

Promise 的 then 方法是一个非常有用的工具,它允许您在 Promise 完成或拒绝时执行回调函数。then 方法接受两个参数:

  • 一个成功的回调函数,它将在 Promise 完成时执行。
  • 一个失败的回调函数,它将在 Promise 拒绝时执行。
promise.then(function(result) {
  // Promise 成功时执行的代码
}, function(error) {
  // Promise 失败时执行的代码
});

then 方法的链式调用

then 方法可以被链式调用,这意味着您可以将多个 then 方法连接起来,以执行一系列操作。在链式调用中,每个 then 方法的返回值都会被传递给下一个 then 方法的成功回调函数作为参数。

promise.then(function(result) {
  return anotherPromise(result);
}).then(function(result) {
  // 处理另一个 Promise 的结果
});

判断 Promise 的返回

在链式调用中,then 方法的返回可以是另一个 Promise 对象,或者是一个值。如果 then 方法返回另一个 Promise 对象,那么下一个 then 方法的成功回调函数将在该 Promise 完成时执行。如果 then 方法返回一个值,那么下一个 then 方法的成功回调函数将立即执行,并将该值作为参数。

promise.then(function(result) {
  if (result > 10) {
    return Promise.resolve(result * 2);
  } else {
    return result;
  }
}).then(function(result) {
  // 处理结果
});

在上面的示例中,如果 result 大于 10,那么 then 方法将返回另一个 Promise 对象,该 Promise 对象将在 result 乘以 2 后完成。如果 result 小于或等于 10,那么 then 方法将直接返回 result 值。

结论

then 方法是 Promise 中一个非常有用的工具,它允许您在 Promise 完成或拒绝时执行回调函数。then 方法可以被链式调用,以便执行一系列操作。在链式调用中,then 方法的返回可以是另一个 Promise 对象,或者是一个值。如果 then 方法返回另一个 Promise 对象,那么下一个 then 方法的成功回调函数将在该 Promise 完成时执行。如果 then 方法返回一个值,那么下一个 then 方法的成功回调函数将立即执行,并将该值作为参数。