zoukankan      html  css  js  c++  java
  • Node.js 事件循环

    Node.js 是单进程单线程应用程序,但是因为 V8 引擎提供的异步执行回调接口,通过这些接口可以处理大量的并发,所以性能非常高。

    Node.js 几乎每一个 API 都是支持回调函数的。

    Node.js 单线程类似进入一个while(true)的事件循环,直到没有事件观察者退出,每个异步事件都生成一个事件观察者,如果有事件发生就调用该回调函数。

    Node.js 有多个内置的事件,我们可以通过引入 events 模块,并通过实例化 EventEmitter 类来绑定和监听事件

    //引入event模块
    var events=require("events");
    
    //创建eventEmitter对象
    var eventEmitter=new events.EventEmitter();
    
    var connectHandler=function connected(){
        console.log("连接成功");
    
        //触发事件
        eventEmitter.emit("data_received");
    }
    
    //绑定事件及处理程序
    eventEmitter.on("connection",connectHandler)
    
    //绑定data_received
    eventEmitter.on("data_received",function(){
        console.log("数据接收成功");
    })
    
    //触发connection事件
    eventEmitter.emit("connection");
    
    console.log("程序处理完毕~");

    读取文件实例

    var fs = require("fs");
    
    fs.readFile('input.txt', function (err, data) {
        if (err){
            console.log(err.stack);
            return;
        }
        console.log(data.toString());
    });
    console.log("程序执行完毕");

    如果input.txt被删除,则会报出错误信息

  • 相关阅读:
    设置VSS2005使支持通过Internet访问
    Twisted网络编程必备(3)
    Python中re(正则表达式)模块学习
    Python中最快的字典排序方法
    理解Python命名机制
    Twisted网络编程必备(2)
    threading 多线程控制和处理
    Twisted网络编程必备(5)
    Python中动态创建类实例
    判断是否为字符串
  • 原文地址:https://www.cnblogs.com/chenyingying0/p/12447521.html
Copyright © 2011-2022 走看看