• Nodejs 之非阻塞 I/O、异步、事件驱动


    1、非阻塞 I/O

        var fs = require('fs');
        console.log('1');
    
        fs.readFile('mime.json',function (err,data) {//readFile是一个异步,或者是非阻塞式IO
            console.log('2');
        })
    
        console.log('3');

    2、函数封装

      
      //封装
      function getData() { fs.readFile(
    'io/mime.json', function (err, data) {//readFile是一个异步,或者是非阻塞式IO console.log(data.toString()); }); }
      //调用 getData();

    3、回调函数处理异步

       var fs=require('fs');
        function getMime(callback){ //callback为回调函数
            fs.readFile('io/mime.json',function(err,data){
            callback(data); //相当于将function(result)传入函数内
            })
        }
    
        getMime(function(result){ //function(result)为回调函数
            console.log(result.toString());
        })

    4、事件驱动(消息订阅系统)

      // 引入 events 模块
        var events = require('events');
        var EventEmitter=new events.EventEmitter(); /*实例化事件对象*/
    
        EventEmitter.on('toparent',function(){//订阅消息
         console.log('接收到了消息');
        })
    
        setTimeout(function(){
             console.log('广播');
             EventEmitter.emit('toparent'); /*发布消息*/
        },1000)
  • 相关阅读:
    #2019120500018-LG 小雨的数字游戏
    假期Noip笔记
    #2019120500016 逆序对与归并排序
    #2019120500015-LG 全排列
    #2019120500014-LG 采药
    #2019120500013-LG 合并果子
    二分与三分
    #2019120500012-LG 小鱼比可爱
    #2019120500011-LG 约瑟夫问题&玩具谜题
    HDU 5738 共线点集
  • 原文地址:https://www.cnblogs.com/ywjfx/p/10396858.html
Copyright © 2020-2023  润新知