博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
node笔记(四)-Nodejs的非阻塞IO、异步以及 事件驱动EventEmitter解决异步
阅读量:6580 次
发布时间:2019-06-24

本文共 1633 字,大约阅读时间需要 5 分钟。

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

转载地址:http://qiino.baihongyu.com/

你可能感兴趣的文章
一些常用的WebServices
查看>>
CentOS7使用firewalld打开关闭防火墙与端口
查看>>
maven 添加阿里云maven镜像
查看>>
mac上安装consolas字体
查看>>
对向量、矩阵求导
查看>>
各版本linux下载地址大全
查看>>
CentOS 6.X 关闭不需要的 TTY 方法
查看>>
我的友情链接
查看>>
分区技术学习一
查看>>
Juniper 高级选项
查看>>
编程能力的四种境界
查看>>
编译安装mysql
查看>>
在windows上秒开应用程序
查看>>
【20180611】MySQL OOM
查看>>
memcached
查看>>
Python面向对象编程(一)
查看>>
决心书
查看>>
如何把图片上的文字转换成word?
查看>>
7z命令行
查看>>
C语言编程实现 输入一个非负整数,返回组成它的数字之和(递归方法)
查看>>