非同步 Javascript 函數可以同步呼叫嗎?
雖然非同步程式設計在 Javascript 中很常見,但特定場景可能需要對現有同步函數進行同步呼叫程式碼庫。儘管承認這種方法的次優性質,但由於時間限制,可能有必要將非同步呼叫改造為更大的同步程式碼庫。
阻塞回呼函數
挑戰在於阻塞呼叫函數的執行,直到收到非同步函數的回呼。關鍵考慮因素包括:
範例實作:
function doSomething() { var data; function callBack(d) { window.data = d; } myAsynchronousCall(param1, callBack); // Start polling var intvl = setInterval(function() { if (window.data) { clearInterval(intvl); console.log(data); } }, 100); }
重構非同步合規性:
重構非同步合規性:
function doSomething(func) { function callBack(d) { func(d); } myAsynchronousCall(param1, callBack); } doSomething(function(data) { console.log(data); });
以上是非同步 JavaScript 函數可以強制同步執行嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!