Javascript-让一个函数一个接一个地运行



我有一个函数,当按钮上发生点击事件时运行-first((。在它内部填充一个字典,second((使用字典中的这些值。我希望second((在该字典被填充之后运行。我曾尝试将second((放在first((内部的回调中,但它是同步运行的,这意味着(我认为(,当它启动第二个函数时,dictionarys仍然是空的。我认为我需要首先返回一个承诺,或者获得第二个函数来等待第一个函数的完成,但我不知道如何完成。欢迎提供任何指导。此外,我希望在没有JQuery的情况下(理想情况下(做到这一点。

function first(){
populateDict()
}
function second(){
loopThroughDict()
}

要理解异步等待,可以参考本文

这里second()函数只有在populateDict()返回后才会被调用

async function first(){
await populateDict();
second();
}

回调放入populateDict()函数中。

function populateDict(second){
//do some stuff to populate dictionary
second()
}

现在用first()中的回调函数调用填充dict

function second(){
iterateThroughDict()
}
function first(){
populateDict(second)
}

我希望这将帮助你:(

相关内容

最新更新