Javascript Main函数一个接一个地调用其他函数
正如标题所示,我想构建一个函数,一个接一个地调用其他函数。不幸的是,函数需要不同的时间长度,执行时出现问题是可以理解的 这个问题有简单的解决方案吗?Javascript Main函数一个接一个地调用其他函数,javascript,google-apps-script,google-sheets,Javascript,Google Apps Script,Google Sheets,正如标题所示,我想构建一个函数,一个接一个地调用其他函数。不幸的是,函数需要不同的时间长度,执行时出现问题是可以理解的 这个问题有简单的解决方案吗? function allInOne() { loadData(); moveSheet(); sortStockData(); } 在第一个功能完成之前,第二个功能已经执行。但这一切都应该一个接一个地完成。我刚被谷歌等网站卡住了 提前感谢。查看函数内部,因为它们可能会返回承诺 正常的Javascript是单线程的,所以当您调用一个函数
function allInOne() {
loadData();
moveSheet();
sortStockData();
}
在第一个功能完成之前,第二个功能已经执行。但这一切都应该一个接一个地完成。我刚被谷歌等网站卡住了
提前感谢。查看函数内部,因为它们可能会返回承诺
正常的Javascript是单线程的,所以当您调用一个函数,然后调用另一个函数,然后再调用另一个函数时(就像您所做的那样),您可以期望它们按顺序运行
但是,您可能会发现loadData()是一个异步函数,返回一个Promise
。查看它的return
语句来检查这一点
如果它是在回报一个承诺,你可以说
loadData().then(result => moveSheet())
如果moveSheet
也返回承诺,则可以按如下方式展开链:
loadData().then(result => moveSheet()).then(result => sortStockData())
另一种表达方式是使用'await'关键字
这里有更多关于承诺的信息
您应该尝试jakub提供的此解决方案,看看它是否有助于按顺序结束函数
async function x(){
await loadData();
await moveSheet();
sortStockData();
}