我正在嘗試編寫「現代」js,並避免使用異步/等待的回調和承諾。但是,我不能完全理解它是如何工作的。我認爲「下一個」功能會等到第一個功能在跑完之前完成。異步/等待功能沒有等待。多個函數不運行並按順序完成
在我的應用程序中,四個函數都是對MySQL DB的ajax調用以更新記錄並選擇其他數據並構建一個新的html表格寫入DOM。
這四個函數按隨機順序完成,導致接口不正確。刷新整個頁面可以解決問題,但如果這些功能只按我定義的順序運行並完成,那麼界面將是正確的。
async function reloadAllTable(workOrderId,statusId) {
await techSelectTable(workOrderId);
await updateWOStatus(workOrderId,statusId);
await loadWOScheduled(statusId);
await loadWOAssigned(statusId);
}
reloadAllTable(workOrderId,statusId);
您等待*承諾*。這些函數中的任何一個都會返回promise嗎?如果沒有,那是你的問題。 – jib
不是。它們都只是處理數據庫記錄的ajax例程,但這些過程必須按順序進行。 –
你如何期待JS知道他們何時完成?例如, techSelectTable'通常會調用一個傳入的回調函數或者什麼時候完成? – jib