我在jQuery中使用each()在div中迭代子代時有一些代碼。 裏面的每個文本都被分割成單詞。每個單詞都用'for'循環處理。 此功能可能需要很長時間,並可以凍結瀏覽器,所以...在另一個異步循環內的Javascript異步循環
有沒有辦法在另一個異步循環內創建異步循環,但有人正在等待其他人完成?
有人能告訴我正確的方向嗎?
我想出了這樣的事情:
var queue = [];
var nlevel = 0;
function work() {
nlevel = queue.length-1;
var arr = queue[nlevel][0];
var process = queue[nlevel][1];
var cnt = queue[nlevel][2];
var item = arr[cnt];
process.apply(item);
cnt++;
queue[nlevel][2] = cnt;
if (cnt < arr.length) {
setTimeout(work, 1);
} else {
if (queue.length>1) {
queue.pop();
setTimeout(work, 1);
}
}
}
function each(arr, process) {
queue.push([arr, process, 0]);
setTimeout(work, 1);
}
each(['one', 'two', 'three'], function() {
alert(this);
each([1, 2, 3, 4], function() {
alert(this);
});
});
,但它有一些重大的錯誤,我不能修復它。
我確定有一個解決方案,但是如果沒有看到實際的代碼和更多關於您想要更改的代碼的具體描述,我們無法真正幫助您。 – jfriend00 2012-02-06 23:19:20