37213590
才开始学node没多久,遇到了好多问题,感觉最让我困扰的就是异步转同步
- 有一次遇到的问题大概代码是这样的: for(var i=arr.length; i>0; i--){ fun(); if(i==0){ console.log("ok") } } 但是我发现每次fun()还没执行完就先输出“OK”。我知道大概是fun()被放进线程池没有立即执行所以要后执行,但是我不想这样。。
- 还有一次在使用sqlLite模块时遇到的,大概是这样: var db = new sqlite3.Database('xxx'); ... for(var i=0; i<arr.length; i++){ ... db.all(sql1, function(){ ... console.log( arr[i] ); db.all(sql2, function(){ ... console.log( arr[i] ); }) }) } 具体忘记了,但是问题我记得,i的值可以传递到第一层的db.all中,但是传递不到第二层的db.all中,导致arr[i]值是undefined。
- 还有就是写代码的时候不知不觉就嵌套了很多层。。。 求大神帮忙,万分感谢~~