gpt4 book ai didi

javascript - 如何让这个 if 语句在其余代码运行之前完成执行?

转载 作者:行者123 更新时间:2023-11-29 18:44:59 25 4
gpt4 key购买 nike

这是我在我的应用程序中尝试做的事情的一个简单版本。我有一个 if 语句,它评估函数调用的结果,然后在语句返回为真时填充一个数组。在 if 语句完全完成后,我想运行更多代码,例如如下所示的 console.log。

我知道 if 的计算完成时间太长,javascript 由于其异步性而继续到 console.log。如何让代码等待 if 语句完成?

var tabs = [];

if (isTrue()) {
tabs.push('some string');
}

console.log(tabs[1]);

function isTrue() {
setTimeout(function() {
return true;
}, 500)
}

最佳答案

您可以将代码包装在 Promise 中并通过调用 then 使用返回值在上面:

var tabs = [];
isTrue().then(res => {
if (res) {
tabs.push('some string');
}
return tabs;
}).then(arr => {
console.log(arr);
});



function isTrue() {
//Just wrap your existing code in a Promise constructor
return new Promise((resolve, reject) => {
setTimeout(() => {
//Pass whatever value you want to consume later to resolve
resolve(true);
}, 500)
});
}

关于javascript - 如何让这个 if 语句在其余代码运行之前完成执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54497998/

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