gpt4 book ai didi

javascript - `x = x.then()` 在 promise 中做了什么?

转载 作者:行者123 更新时间:2023-11-30 07:36:28 24 4
gpt4 key购买 nike

我正在尝试理解一些具有新颖 promise 方法的代码:

var sequence = Promise.resolve();

sequence = sequence.then(
function() {
// success function
}
);

sequence = sequence.then(
function(keyPair) {
// success function
},
function(err) {
// err function
}
);

sequence = sequence.then(
function(keyPair) {
// success function
},
function(err) {
// err function
}
);

这与普通的链式 .then 方法有何不同?使用安全吗?

最佳答案

How does this differ from the normal chained .then approach?

完全没有。您可以删除该 sequence 变量并直接链接 .then() 方法调用,您将从您的 promise 中获得完全相同的行为。

Is it safe to use?

是的。

Why would I use it?

通常,您不应该这样做。它(显然)只是令人困惑,不需要那个 sequence 变量,而且它更长。创建具有描述性名称的变量可以使代码更冗长和更容易理解,但 sequence 只是没有意义。

但是,有一个优点:您可以构建动态链。您可以将其中一些赋值放在 if block 中,甚至可以使用循环来构建可变长度和行为的 promise 链。通过在执行 promise 回调之前同步评估条件,与将所有控制流放在 promise 回调中相比,这甚至可能有利于性能(尽管在内存中创建了大量的 promise 对象)。无论如何,这种方法应该使用不同的描述性变量,而不是重复地重新分配给同一个变量。

关于javascript - `x = x.then()` 在 promise 中做了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31371974/

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