gpt4 book ai didi

用于在 promise 链上来回前进的 Javascript 模式

转载 作者:行者123 更新时间:2023-11-29 18:02:57 27 4
gpt4 key购买 nike

我学会了喜爱和使用 promise 链。但是有时我需要重复执行中的一个阶段。有没有办法在不将 promise 链分解为单独的方法的情况下做到这一点?

dataLayer.loginUser(loginData)
.then(function (response) {

console.log('loginUser response -> ', response);
return dataLayer.getData();

}.bind(this))
.then(function (response) {

console.log('loginUser response -> ', response);
if (response.message === 'JWT_EXPIRED') {
// Somehow go back to the previous stage
return dataLayer.refreshJWT().then(...);
}

// next stage
return ...
});

最佳答案

不,没有。您将需要一个单独的函数,您可以引用并再次调用。

当然,您可以只使用命名函数表达式作为 then 回调,这样它就不会“破坏”您的链:

dataLayer.loginUser(loginData)
.then(function tryToGetData(response) {
console.log('loginUser response -> ', response);
return dataLayer.getData().then(function (response) {
console.log('loginUser response -> ', response);
if (response.message === 'JWT_EXPIRED') {
return tryToGetData(response); // again!
return response;
});
}).then(function(response) {
// next stage
return …;
});

关于用于在 promise 链上来回前进的 Javascript 模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33632443/

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