我在我的節點代碼中需要從數據庫(MySQL)中檢索4或5個項目的一個點,然後對結果進行一些數學計算,然後將結果返回到調用函數的代碼的主要部分。在我從這些函數或函數中返回數據之前,我無法在代碼中繼續前進。包含嵌套非阻塞函數的節點阻塞函數?
我讀的所有內容都說不創建同步功能,因爲您拿走了使用Node的所有喜悅和美感。但是,我從字面上不能繼續執行我的代碼而沒有函數的結果。
那麼,我不需要這裏的同步功能嗎?如果是這樣,爲什麼感覺這麼錯呢?大聲笑。
我想到做一個大的外部函數是同步的,它包含了4或5個函數,它們實際上完成了這項工作。我可以使嵌套函數異步並使外部函數(容器)同步。
對此有何看法?新的節點,只是第一次嘗試做到這一點。
你不能那樣做。相反,你應該使用承諾。 – SLaks
在繼續執行之前,node.js字面上無法等待異步操作完成。如果你的函數中有嵌入式異步操作,那麼現在整個函數都是異步的。您無法返回該值。請參閱[我如何從異步調用返回響應](http://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call)討論你的選擇。承諾或回調將被採用。 – jfriend00