在 Node.js 中,事件驅動程式設計的非同步特性在等待回呼時需要不同的方法。本文並未採用同步阻塞技術,而是探討了使函數暫停直到指定時間的有效替代方法。
與傳統的阻塞函數不同,啟動非同步的 Node.js 函數操作完成後立即呼叫回調,而不等待回應。舉個例子:
<code class="javascript">function(query) { myApi.exec('SomeCommand', function(response) { return response; }); }</code>
此程式碼可能會引發錯誤,因為函數立即返回,而回調尚未調用。函數執行流程繼續,導致回調回應無法存取。
Node.js 中推薦的解決方案在於採用基於回調的方法。您的函數不應嘗試阻止執行,而應接受操作完成時將呼叫的回呼參數。
<code class="javascript">function(query, callback) { myApi.exec('SomeCommand', function(response) { callback(response); }); }</code>
現在,函數執行流程不會等待回調回應;而是會執行回呼。相反,它會立即呼叫回調,然後由呼叫者處理。
修改後的函數不再依賴傳統的回傳值,而是要求呼叫者提供回呼將接收回應的函數:
<code class="javascript">myFunction(query, function(returnValue) { // Process the return value here });</code>
透過採用這種基於回調的方法,您可以有效地暫停函數,直到呼叫所需的回調,從而允許您的Node.js 應用程式保持其非同步且高效的設計哲學。
以上是如何暫停 Node.js 函數直到回呼執行的詳細內容。更多資訊請關注PHP中文網其他相關文章!