then() 方法用于链式调用异步操作,处理 promise 结果。用法:promise.then(resolvehandler, rejecthandler),其中 resolvehandler 处理成功结果,rejecthandler(可选)处理错误结果。then() 可链式调用,处理多个异步操作。resolvehandler 可返回一个值或另一个 promise,从而传递结果。rejecthandler 处理 promise 的拒绝结果。then() 方法返回一个新的 promise 对象
JavaScript 中 then() 的用法
then() 方法是 JavaScript 中 Promise 对象常用的方法之一。它用于链式调用异步操作,并在操作完成时获取并处理结果。
用法
promise.then(resolveHandler, rejectHandler);
登录后复制
其中:
- promise:要附加处理程序的 Promise 对象。
- resolveHandler:一个可接受单个参数的函数,用于处理 Promise 成功结果。
- rejectHandler(可选):一个可接受单个参数的函数,用于处理 Promise 失败结果。
链式调用
then() 方法的强大之处在于它可以被链式调用,以便对多个异步操作进行顺序处理。例如:
promise .then(result => { // 处理成功结果 return anotherPromise(result); }) .then(result => { // 处理另一个成功的结果 }) .catch(error => { // 处理拒绝(错误) });
登录后复制
处理结果
then() 方法的参数函数可以返回一个值或另一个 Promise 对象:
- 返回值:如果 resolveHandler 返回一个值,则该值将作为下一个 then() 处理程序的参数传递。
- Promise 对象:如果 resolveHandler 返回一个 Promise 对象,则下一个 then() 处理程序将在该 Promise 对象完成后被调用,并使用其结果作为参数。
处理错误
then() 方法的第二个参数函数 rejectHandler 用于处理 Promise 的拒绝(错误)结果。如果 Promise 被拒绝,则 rejectHandler 将被调用,并传入拒绝的原因。
注意点
- then() 方法总是返回一个新的 Promise 对象,即使它没有被显式使用。
- 如果 resolveHandler 或 rejectHandler 函数抛出错误,则新 Promise 将被拒绝,并传递该错误。
- then() 方法不能直接处理同步错误。要处理同步错误,可以使用 try…catch 语句或 Promise.resolve() 和 Promise.reject() 方法。
以上就是js中then的用法的详细内容,更多请关注叮当号网其它相关文章!
文章来自互联网,只做分享使用。发布者:牧草,转转请注明出处:https://www.dingdanghao.com/article/478374.html