我有一个函数 f1(valueOfData)
正在执行,我可以从外部数据源提取数据。此外,我还有另一个函数 f2()
,它有一个 if 循环,并在调用第三个函数之前验证该值是否已被提取。
尝试了很多之后,我陷入了这样一种情况:在 f1(valueOfData)
的执行完成并拉取数据(需要几分钟)之前,第二个函数(数据验证函数)被调用。
我知道 Javascript 是事件驱动的,因此尝试使用第二个函数(验证函数)作为回调,但是,我仍然无法实现它。此外,我无法使用 window.setTimeOut(millis)
,因为我需要计算从数据库中检索数据所需的确切时间(使用 performance.now()
)。
function call(){
doc1.validateFilterColumn("columnName");
}
function a(callBack){
doc1.applyFilter('1-7');
callBack();
}
a(call);
有人可以帮我建议如何在执行第二个函数之前等待第一个函数完全完成。
答案 0 :(得分:0)
默认情况下,javascript 按顺序运行代码。如果你有同步函数,你可以这样调用它们:
functionA();
functionB();
如果是异步函数,你可以简单地使用异步等待格式:
async function A(){
await functionB();
await functionC();
.
.
.
}
或者你可以在完成第一个后立即定义回调函数。
答案 1 :(得分:0)
你可以试试:
async function f1(){
let something = await processYouWantToWait()
f2()
}