0
假設我有以下代碼:如何使用參數作爲異步函數(Javascript)編寫同步函數?
同步版本:
var waitingToGetValue = heavyProcessingFunc (para1, para2);
response.send(waitingToGetValue);
我試着環顧四周,但我得到的是功能,而參數。
異步嘗試:
heavyProcessingFunc(para1, para2, (function(waitingToGetValue){
response.send(waitingToGetValue);
});
我需要兩個參數發送到函數。該函數返回一個值,我需要使用它將其發送到響應。
如果我把它放在一個異步格式中,它甚至不管嗎?任何人都可以向我推薦一個視頻/源代碼,它可以很容易地解釋同步與異步之間的區別:我過去幾天閱讀了許多內容,它只是在承諾,回調和嘗試訪問這些函數外的值時變得更加混亂。
同步意味着一切停止,直到已接收到響應(一般是不好的,因爲用戶界面鎖定起來,而你等待變得反應遲鈍)。異步意味着代碼在請求正在進行時繼續處理。這樣做更好,因爲用戶界面不會被阻塞,但會引入不知道響應何時會回來的問題。這就是我們需要回調的原因。 –
使函數接受回調不會使其異步。這取決於該功能的功能。例如。 'Array#forEach'也需要回調,但不是異步的。我不清楚你的問題是關於什麼的。 –
「異步格式」對任何內容都沒有幫助。你需要讓這個函數實際上做一些異步的事情,並且如果它在各輪繁重的處理之間只有很小的延遲。 – Bergi