首页 > web前端 > js教程 > 链式 Promise 如何处理和传播拒绝?

链式 Promise 如何处理和传播拒绝?

Linda Hamilton
发布: 2024-12-09 07:11:07
原创
1033 人浏览过

How Do Chained Promises Handle and Propagate Rejections?

链式 Promise 未通过拒绝

在 Promise 链中,Promise 的解析取决于其错误处理函数如何响应拒绝。 .then() 方法为回调函数的结果返回一个新的 Promise。如果没有提供成功或错误处理程序,结果将直接传递给下一个 Promise。

如果处理了错误,则生成的 Promise 将使用错误处理程序的返回值来实现。要重新抛出错误并将其沿着链传播,请改为抛出 err。

在小部件商店示例中,当链中的 Promise 收到错误时,它应该向前抛出该错误,以确保后续的 Promise该链不会收到成功值。

在数据库查询链中,如果第一个查询中发生错误,省略错误处理程序将允许链继续,即使后续的 Promise 可能不会收到

1

2

3

4

5

6

7

8

9

db.query({ parent_id: value }).then(function(query_result) {

    return db.put({

        parent_id: query_result[0].parent_id

    });

}).then(function(first_value_result) {

    return db.put({

        reference_to_first_value_id: first_value_result.id

    });

}.then(values_successfully_entered);

登录后复制

总之,为了防止链中的后续 Promise 在发生拒绝后接收成功值,错误处理函数应该抛出错误或返回被拒绝的 Promise。

以上是链式 Promise 如何处理和传播拒绝?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板