gpt4 book ai didi

javascript - 定义一个等待 promise 返回的 NavigationInstruction

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

我们如何定义一个等待 promise 返回的 NavigationInstruction?

let loginRedirectRoute: RouteConfig = {
name: "openIdRedirectRoute",
navigationStrategy: (instruction: NavigationInstruction) => {
this.loginRedirectHandler().then(() => {
instruction.config.moduleId = openIdConfiguration.LoginRedirectModuleId;
}).catch((err) => {
console.error(err.message);
});
},
route: this.getPath(openIdConfiguration.UserManagerSettings.redirect_uri),
};

以上是行不通的。它仅在我们同步调用 instruction.config.moduleId... 时有效。

换句话说,我们需要一个在 promise 返回后做某事的导航策略。

这可能吗?如何?

最佳答案

您的内部函数未返回 Promise。尝试

this.loginRedirectHandler().then(() => {
return instruction.config.moduleId = openIdConfiguration.LoginRedirectModuleId;
}).catch((err) => {
console.error(err.message);
});

记住这一点

  • .then(() => { return do_this(); }) 链接一个 Promise,
  • .then(() => do_this()); 链接一个 Promise,
  • .then(() => { do_this(); }) 不会。

var foo = 0;

function do_this(bar) {
console.log("call " + foo + " passed " + bar);
foo++;
bar++;
return bar;
}

var promise = new Promise(function(resolve, reject) {
window.setTimeout(() => {
resolve(0);
}, 500);
});

promise
.then((bar) => { return do_this(bar); }) /* 1 */
.then((bar) => do_this(bar)) /* 2 */
.then((bar) => { do_this(bar); }) /* 3 */
.then((bar) => do_this(bar)); /* undefined */

关于javascript - 定义一个等待 promise 返回的 NavigationInstruction,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39049550/

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