深入浅出,掌握 JavaScript then() 方法186
在 JavaScript 中,then() 方法用于处理异步操作的结果。它是一个 Promise 对象的方法,返回一个新的 Promise 对象,用于处理先前的 Promise 对象成功或失败的结果。
then() 方法的语法(onFulfilled, onRejected)
* promise:要处理结果的 Promise 对象。
* onFulfilled:一个回调函数,在 promise 成功解决时执行。它接收一个参数,该参数是 promise 成功的结果。
* onRejected:一个回调函数,在 promise 被拒绝时执行。它接收一个参数,该参数是 promise 被拒绝的原因。
then() 方法的工作原理then() 方法创建一个新的 Promise 对象,并在此新的 Promise 对象上附加一个回调函数。当原来的 Promise 对象被解决时,回调函数就会被执行。
如果原始的 Promise 对象成功解决,则 onFulfilled 回调函数会被执行,并且其参数将是 Promise 对象成功解决的结果。新的 Promise 对象将以该结果作为自己的解决结果。
如果原始的 Promise 对象被拒绝,则 onRejected 回调函数会被执行,并且其参数将是 Promise 对象被拒绝的原因。新的 Promise 对象将以该原因作为自己的拒绝原因。
then() 方法的链式调用then() 方法可以链式调用,这意味着可以将多个 then() 方法连接在一起,以依次处理 Promise 对象的结果。
例如,以下代码使用 then() 方法链式调用来获取用户的姓名,然后使用该姓名来获取他们的头像 URL:
fetchUser()
.then(user => ())
.then(name => getAvatarUrl(name))
.then(avatarUrl => displayAvatar(avatarUrl))
.catch(error => handleError(error))
then() 方法的返回值then() 方法返回一个新的 Promise 对象。如果第一个回调函数(onFulfilled)返回一个 Promise 对象,则新的 Promise 对象将等待该 Promise 对象解决。否则,新的 Promise 对象将使用第一个回调函数的返回值作为自己的解决结果。
与 catch() 方法的区别then() 方法和 catch() 方法都是用于处理 Promise 对象的结果,但它们有不同的用途。
* then() 方法:用于处理 Promise 对象成功解决或被拒绝的情况。
* catch() 方法:仅用于处理 Promise 对象被拒绝的情况。
因此,如果需要处理 Promise 对象成功解决和被拒绝的情况,可以使用 then() 方法。如果只需要处理 Promise 对象被拒绝的情况,可以使用 catch() 方法。
示例以下是一个使用 then() 方法处理 Promise 对象的示例:
fetch("/api/users")
.then(response => ())
.then(users => {
// 处理用户列表
})
.catch(error => {
// 处理错误
});
在这个示例中,fetch() 函数返回一个 Promise 对象,用于获取来自 API 的用户列表。然后,将 Promise 对象传递给 then() 方法,该方法将返回一个新的 Promise 对象,用于解析响应中的 JSON 数据。然后,将新的 Promise 对象传递给另一个 then() 方法,该方法将返回一个新的 Promise 对象,用于处理用户列表。最后,将新的 Promise 对象传递给 catch() 方法,该方法将返回一个新的 Promise 对象,用于处理任何错误。
then() 方法是 JavaScript 中用于处理异步操作结果的强大工具。它使我们能够轻松地处理 Promise 对象成功或失败的结果,并且可以链式调用以创建复杂的操作。
2024-12-22
重温:前端MVC的探索者与现代框架的基石
https://jb123.cn/javascript/72613.html
揭秘:八大万能脚本语言,编程世界的“万金油”与“瑞士军刀”
https://jb123.cn/jiaobenyuyan/72612.html
少儿Python编程免费学:从入门到进阶的全方位指南
https://jb123.cn/python/72611.html
Perl 高效解析 CSV 文件:从入门到精通,告别数据混乱!
https://jb123.cn/perl/72610.html
荆门Python编程进阶指南:如何从零到专业,赋能本地数字未来
https://jb123.cn/python/72609.html
热门文章
JavaScript (JS) 中的 JSF (JavaServer Faces)
https://jb123.cn/javascript/25790.html
JavaScript 枚举:全面指南
https://jb123.cn/javascript/24141.html
JavaScript 逻辑与:学习布尔表达式的基础
https://jb123.cn/javascript/20993.html
JavaScript 中保留小数的技巧
https://jb123.cn/javascript/18603.html
JavaScript 调试神器:步步掌握开发调试技巧
https://jb123.cn/javascript/4718.html