node笔记(四)-Nodejs的非阻塞IO、异步以及 事件驱动EventEmitter解决异步

in 编程
关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9

mime.json

{
    ".323": "text/h323",
    ".3gp": "video/3gpp",
    ".aab": "application/x-authoware-bin",
    ".zip": "application/zip",
    ".json": "application/json"
}

异步执行顺序

异步的方法,会等到同步处理完后,才开始执行

var fs = require('fs');

console.log('1')
function getMime(){
    fs.readFile('mime.json',function(err,data){
        console.log(data.toString())
        console.log('2')
    })
}
console.log('3')
getMime()

clipboard.png

非阻塞io

直接调用,拿不到异步方法,请求的数据

function getMime(){
    fs.readFile('mime.json',function(err,data){
        return data;
    })
}
console.log(getMime())  //underfind

回调函数

var fs = require('fs');

function getMime(callback){
    fs.readFile('mime.json',function(err,data){
        callback(data);
    })
}
getMime(function(result){
    console.log(result.toString())
})

clipboard.png

node.js 事件驱动

最简单的事件驱动

var events = require('events');
var EventEmitter = new events.EventEmitter();
EventEmitter.on('to_mime', function (data) {
    console.log(data);  //给mime发送的数据
})

EventEmitter.emit('to_mime', '给mime发送的数据')

事件驱动里有事件驱动

var events = require('events');
var EventEmitter = new events.EventEmitter();
EventEmitter.on('to_mime', function (data) {
    console.log(data);
})
EventEmitter.on('to_parent',function(data){
    console.log(data);
    EventEmitter.emit('to_mime','给mime发送的数据')
})

setTimeout(function(){
    console.log('开始广播...');
    EventEmitter.emit('to_parent','发送的数据')
},1000)

clipboard.png

获取mime.json里的数据

var fs = require('fs');
var events = require('events');
var EventEmiter = new events.EventEmitter();

function getMime(){
    fs.readFile('mime.json',function(err,data){
        EventEmiter.emit('data',data)
    })
}
getMime()

EventEmiter.on('data',function(mime){
    console.log(mime.toString())
})

clipboard.png

关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9
扫一扫关注公众号添加购物返利助手,领红包
Comments are closed.

推荐使用阿里云服务器

超多优惠券

服务器最低一折,一年不到100!

朕已阅去看看