zoukankan      html  css  js  c++  java
  • NodeJS中的循环陷阱

    Node.js的异步机制由事件和回调函数实现,一開始接触可能会感觉违反常规,但习惯以后就会发现还是非常easy的。

    然而这之中事实上暗藏不少陷阱。一个非常easy遇到的问题就是回到循环的回调函数。

    eq:

    var fs=require('fs');
    var files=['a.txt','b.txt','c.txt'];
    
    for(var i=0;i<files.length;i++){
        fs.readFile(file[i],'utf-8',function(err,contents){
            console.log(files);
            console.log(i);
            console.log(files[i]);
        })
    }
    
    实际执行的结果例如以下:

    ['a.txt','b.txt','c.txt']
    3
    undefined
    ['a.txt','b.txt','c.txt']
    3
    undefined
    ['a.txt','b.txt','c.txt']
    3
    undefined
    解决方法例如以下:

    var fs=require('fs');
    var files=['a.txt','b.txt','c.txt'];
    
    files.forEach(function(filename){
    	fs.readFile(filename,'utf-8',function(err,contents){
    		console.log(filename+":"+contents);
        })
    })




  • 相关阅读:
    945.使数组唯一的最小增量
    用两个栈实现队列
    MySQL的约束
    数据库的设计
    约束
    DQL查询
    数据库的基本概念
    SQL基础语法
    MySQL基础
    java的注解和反射
  • 原文地址:https://www.cnblogs.com/yfceshi/p/7258858.html
Copyright © 2011-2022 走看看