gpt4 book ai didi

javascript - JavaScript 中的 thenable 对象如何被拒绝?

转载 作者:行者123 更新时间:2023-12-03 08:31:02 29 4
gpt4 key购买 nike

我知道 thenable 具有 then 方法,但是 Promise 如何知道 thenable 对象的状态已转为拒绝?

示例:在这里,$.ajax 是一个 thenable,如果你这样做的话,可以将其鸭型化为 Promise:

Promise.resolve($.ajax({ url: '/test' }))

但是这个表达式返回的 Promise 如何处理 catch 情况呢?

最佳答案

一个Promises/A+ then method确实需要两次回调 - 一次用于完成,一次用于拒绝情况。你会not use the .then(…).catch(…) pattern but .then(…, …) - 第二个回调是“catch case”(请注意 .catch(…) 只是 .then(null, …))。

这就是thenables被同化的方式——当第二个回调被调用时,它们拒绝带有错误的promise。示例:

var rejectingPromise = Promise.resolve({
then: function(onSuccess, onError) {
onError(new Error);
}
});

关于javascript - JavaScript 中的 thenable 对象如何被拒绝?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33330619/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com