|
|
1
5
不同之处在于,如果resolveHandler中发生错误,则rejectHandler不会处理该错误,而是只处理原始承诺中的拒绝。
rejectHandler没有和catch结合使用那么多,因为大多数时候我们只关心它
某物
出了问题。
|
|
2
4
两个都不比另一个有用。当抛出错误或拒绝承诺时,将同时调用被拒绝的处理程序和catch回调。
希望以下内容能帮助解释我的意思:
请注意,在第一个代码段中,如果解析的处理程序抛出,则不存在被拒绝的处理程序(或
|
|
|
3
0
正如帖子中所述,在同一个调用中提供一个resolve和reject处理程序
因为返回时没有抛出错误的拒绝处理程序会恢复承诺链的fufilled通道,所以如果前一个拒绝处理程序正常返回,则不会调用final catch处理程序。 然后问题就转移到用例、开发成本和知识水平上。
理论上,双参数形式
其他用例可能并不普遍。 开发或商业决策的成本。如果告诉用户稍后重试是可以接受的,那么它可能比对拒绝承诺的具体原因做任何事情都要便宜。例如,如果我试图预订午夜以上的航班,当航空公司提高价格时,我通常会被告知“发生了错误,请稍后再试”,因为在预订开始时给我的价格将不被兑现。 我怀疑promise的用法通常是基于实例,而不是对主题的深入了解。对于经验不足的开发人员(可能是成本问题),程序经理也可能希望使代码库尽可能简单。 “最佳实践”可能并不真正适用于决定如何使用承诺,如果使用是有效的。一些开发人员和管理人员会从原则上避免某些形式的使用,但并不总是基于技术优点。 |
|
|
code-geek · Jquery根据单选按钮选择隐藏或显示文本字段 1 年前 |
|
|
Alex · 在轻量级中同时解构和不解构变量 1 年前 |
|
|
Ângelo Rigo · ReactJS映射:如何迭代[关闭] 1 年前 |
|
|
bairog · 从按属性筛选的对象数组字典中创建值数组 1 年前 |
|
|
lokiuucx · JS对象属性返回未定义,尽管对象属性应该有值 1 年前 |