javascript等待变量设置



你能让一个函数等待一个变量被另一个函数设置吗?这是我的例子:

function setvar(){
//some process that may take a while
myvar = 'value';
}
const promise1 = new Promise((resolve, reject) => {
resolve(myvar);
});
promise1.then((value) => {
console.log(value);
});

这似乎不工作,函数开始,即使变量没有准备好。我该怎么办?我不需要settimeout或setinterval,因为我不知道每次要花多长时间。

在承诺中,您需要创建一个循环来检查是否设置了变量:

var myvar;
function setvar(){
//some process that may take a while
myvar = 'value';
}
const promise1 = new Promise((resolve, reject) => {
const loop = () => myvar !== undefined ? resolve(myvar) : setTimeout(loop)
loop();
});
promise1.then((value) => {
console.log(value);
});

setTimeout(setvar, 2000);

最新更新