gpt4 book ai didi

javascript - 青鸟的 promise ——然后终于

转载 作者:数据小太阳 更新时间:2023-10-29 04:11:28 24 4
gpt4 key购买 nike

我在 Bluebird/Promises 中遇到了一些问题。对于 Promise1,无论是调用 fullfill 还是 reject,一切都正常。然而,当我们在 finally block 中返回 Promise2 时,它仅适用于 reject 和 fullfil,我们在 then 的回调中得到 undefined。

function getPromise1() {
return new Promise(function(fulfill, reject) {
fulfill("OK1");
});
}

function getPromise2() {
return new Promise(function(fulfill, reject) {
fulfill("OK2");
});
}


getPromise1()
.then(function(c){
console.log(c);
})
.catch(function(e) {
console.log(e);
})
.finally(function() {
return getPromise2();
})
.then(function(c){
console.log(c);
})
.catch(function(e) {
console.log(e);
});

输出:

确定1

未定义

最佳答案

finally block 不改变返回值。

There are special semantics for .finally() in that the final value cannot be modified from the handler.

Bluebird 会等待它,但它不会更改返回值(这是一个固执己见的选择,并与提议的 ECMAScript 标准语义一致——就像某些语言中的 finally 而不同于其他语言)。

关于javascript - 青鸟的 promise ——然后终于,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31111887/

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