假設我想發送異步AJAX請求到服務器,當它響應發送另一個請求,永遠重複:無限循環在JavaScript中異步回調格局
function sendXHR(url, callback) {
// Send XMLHttpRequest to server and call callback when response is received
}
function infinite() {
sendXHR('url/path', infinite);
}
infinite();
我認爲在這裏我們將耗盡堆棧空間相當快,所以我怎麼做到這一點(沒有阻塞)?
周圍回傳而不是使用return
的模式在node.js
尤其受歡迎。人們如何創造無限循環?我不相信大多數JS引擎會進行任何類型的尾部呼叫優化。
這不會跑出來的堆棧空間,當回調被調用時,它下面的堆棧框架不包含前一個「無限」調用的堆棧。 –
@DanD。我在Chrome中通過在'sendXHR'中添加'callback();'來嘗試它,並且它在大約9500次迭代之後報告「Maximum call stack size exceeded」。 Firefox也說'太多的遞歸'。 – Flash
那麼也許有一些有趣的*發送XMLHttpRequest到服務器和調用回調時收到迴應*部分。 –