在 Node.js 中,處理非同步回呼時,了解平臺本質上的非阻塞性質至關重要。本文解決了一個常見的挑戰:如何讓函數等待回呼完成。
考慮以下簡化函數:
<code class="js">function(query) { myApi.exec('SomeCommand', function(response) { return response; }); }</code>
目標是呼叫 myApi.exec 並傳回回呼中收到的回應。但是,此程式碼會立即傳回,使其無效。
Node.js 的事件驅動架構決定了處理非同步回調的「好」方法是 不等待。相反,函數應該接受一個回調參數,該參數將在操作完成時呼叫。呼叫者不應期望傳統的“返回”值,而應提供回調來處理結果。
<code class="js">function(query, callback) { myApi.exec('SomeCommand', function(response) { // additional processing... callback(response); // This "returns" the value to the caller }); }</code>
用法:
<code class="js">myFunction(query, function(returnValue) { // Use the return value here });</code>
在這種方法中,函數不會阻塞並允許事件循環繼續處理其他任務。當呼叫回調時,提供的函數會非同步處理結果。
以上是如何在 Node.js 中處理非同步回調完成?的詳細內容。更多資訊請關注PHP中文網其他相關文章!