Promise.then 中函数的 return 和 throw 的使用方法

阅读时长 3 分钟读完

在 Promise 的使用中,.then 方法是处理 Promise 状态变化的常用方式,这个方法接受两个参数:onFulfilledonRejected,其中 onFulfilled 是 Promise resolve 时触发的回调函数,onRejected 是 Promise reject 时触发的回调函数。在这两个回调函数中,我们可以使用 returnthrow 语句来控制 Promise 的状态变化。

return 的使用方法

当我们在 onFulfilled 回调函数中使用 return 语句时,它会将返回的值作为一个新的 Promise 对象的 resolve 值。这样,接下来的 then 方法就会得到这个新的 Promise 对象的 resolve 值:

在这个例子中,第一个 then 中的回调函数返回了一个新的 Promise 对象的 resolve 值 num + 1,这个 Promise 对象的状态变为 resolved,然后接下来的 then 方法就会得到它的 resolve 值 2

throw 的使用方法

当我们在 onFulfilledonRejected 回调函数中使用 throw 语句时,它会将抛出的值作为一个新的 Promise 对象的 reject 值。这样,接下来的 catch 方法就会得到这个新的 Promise 对象的 reject 值:

在这个例子中,第一个 then 中的回调函数抛出了一个错误,这个错误被封装成了一个新的 Promise 对象的 reject 值,然后接下来的 catch 方法就会得到它的 reject 值 Error: Error occurred

注意事项

.then.catch 方法中,如果我们在回调函数中不显式地返回任何内容,则返回值是 undefined,这个值并不会影响 Promise 的状态变化。而如果我们在回调函数中抛出一个错误,但是没有 .catch 方法来处理它,这个错误就无法被捕获,并且可能会导致程序崩溃。

因此,我们需要注意以下几个事项:

  • 在回调函数中必须显式地返回一个值或抛出一个错误
  • .then.catch 方法中必须注重错误处理,避免程序崩溃

总结

本文介绍了在 Promise 的使用中,.then 方法中函数的 returnthrow 语句的使用方法,以及注意事项。正确使用 returnthrow 语句可以帮助我们更好地控制 Promise 的状态变化,精简代码,提高可读性。 我们需要注重错误处理,避免程序崩溃,这也是一个良好的编程习惯。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64edd836f6b2d6eab37fd03d

纠错
反馈