2017-06-15 35 views
0

我一直在努力学习回调函数,我花了几天,但我无法找到一个在嵌套循环中使用回调的工作示例。 我在小提琴中提供了一个示例代码,其中应该为每个值推送数据。但是它只返回一个空数组。在循环中使用回调的正确方法?

我想要的数据有我的价值,在它进行j次,而循环不synch.So工作空数组被返回

我将使用项目的概念超时将被替换为sqlite插入和select.This仅仅是一个例子,知道如何在循环中使用它。

var data = []; 
for(var i = 0;i<100;i++) { 
loop(i); 
} 
function loop(i) { 
for(var j =0;j<200;j++) { 
    p(i); 
} 
} 

function p(val) { 
setTimeout(function(){ 
    data.push(val); 
},10) 

} 
console.log(data); 

Here is the example of a working fiddle.

This question is similar to mine但我无法理解如何在我的情况下使用它。

我只想得到数组中有(iXj)值的数据变量 在此先感谢。

+0

你如何在非嵌套循环中使用它?请告诉我们你对这些的了解。 – Bergi

+0

如果你的小提琴工作,有什么问题? – Bergi

+0

我的小提琴工作,但它返回一个空阵列,而它应该是我的所有值的数组,j次 – Kobey24

回答

1

var i = 0; 
 
var length = 10; 
 

 
function for1() { 
 
    console.log(i); 
 
    for2(); 
 
} 
 

 
function for2() { 
 
    if (i == length) { 
 
    return false; 
 
    } 
 
    setTimeout(function() { 
 
    i++; 
 
    for1(); 
 
    }, 500); 
 
} 
 
for1();

这里是一个示例代码,我开发的,我不得不花大量的时间来了解什么叫回作为术语是混乱me.Then我试图用这种方法希望能帮助到你。