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);
        })
    })




  • 相关阅读:
    book pile SGU
    Inversions SGU
    蒟蒻LQL的博客
    控制台注入DLL代码
    Windows消息类型
    windows编程中的数据类型
    单链表的创建与遍历
    定义函数指针
    启动外部程序
    dll共享段中一些需要注意的问题
  • 原文地址:https://www.cnblogs.com/yfceshi/p/7258858.html
Copyright © 2011-2022 走看看