Javascript:异步遍历列表的列表
我正在尝试遍历一个javascript列表 目标是将每个项传递到函数中并对其进行处理 异步的。但是它不起作用:Javascript:异步遍历列表的列表,javascript,asynchronous,recursion,tree,Javascript,Asynchronous,Recursion,Tree,我正在尝试遍历一个javascript列表 目标是将每个项传递到函数中并对其进行处理 异步的。但是它不起作用: var tree = function (data, callback) { var data_position = 0; var iterate = function () { if (data_position<data.length) { if (Array.isArray(data[data_position]
var tree = function (data, callback) {
var data_position = 0;
var iterate = function () {
if (data_position<data.length) {
if (Array.isArray(data[data_position])) {
tree(data[data_position], callback);
// If I uncomment these it will show all items but not ordered
//data_position++;
//iterate();
} else {
callback(data[data_position++], iterate);
}
}
}
iterate();
}
tree([1, 2, [100, 200, 300], 3, 4, 5, 6, 7, 8, 9], function (item, iterate) {
setTimeout(function(){
console.log('Item: ' + item);
iterate();
}, 1000);
})
var-tree=函数(数据,回调){
var数据_位置=0;
var iterate=函数(){
如果(数据位置这应该有效:
var-tree=函数(数据,回调){
var数据_位置=0;
var iterate=函数(){
if(data_position此解决方案使用第二个可选回调函数,该函数允许子迭代函数树
发出信号,指示父级树
在子级完成后继续运行
它按预期运行,每个叶元素迭代之间有1秒的延迟
var tree=function(数据、回调、完成){
var数据_位置=0;
var iterate=函数(){
if(data_position)如果是数组,您将错过data_position++,请尝试以下操作:tree(data[data_position++],callback);仍然不工作,在300处中断谢谢。不幸的是,虽然它显示所有数字,但它将同时显示200和3以及300和4,不考虑超时。当然,它同时显示200和3以及300和4,因为数组是在同一时间迭代的。