我有一个函数,当按钮上发生点击事件时运行-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)
}
我希望这将帮助你:(