node.js接收异步任务结果的两种方法----callback和事件广播
- 事件广播 发送方调用emit方法,接收方调用on方法,无论发送方或是接收方,都会工作在一个频道
声明了一个模块,用于读取mime.json中的记录
var fs = require('fs');
var events = require('events');
var eventemitter = new events.EventEmitter();
var getmimetype = function (path,eventemitter,suffix) {
fs.readFile(path,function (err,data) {
if(err){
console.log(err);
return false;
}
var filedata = JSON.parse(data.toString());
eventemitter.emit('wenwa',filedata[suffix]);
//console.log(filedata[suffix])
})
};
module.exports = getmimetype;
- 接收方
也就是在另一个文件中调用写好的模块,并声明广播的接收方
var eventer = require('./readfile_events');
var fs = require('fs');
var events = require('events');
var eventemitter = new events.EventEmitter();
eventer('./mime.json',eventemitter,'.css');
eventemitter.on('wenwa',function (data) {
console.log(data)
});
- 回调函数
//定义模块
var fs = require('fs');
var gettype = function (suffix,callback) {
fs.readFile('./mime.json',function (err,data) {
if(err){
console.log(err);
return false;
}
var filedata = JSON.parse(data.toString());
//console.log(filedata[suffix]);
callback(filedata[suffix])
})
};
module.exports = gettype;
//调用模块
var gettype = require('./readfilecallback.js');
var fs = require('fs');
var events = require('events');
var eventemitter = new events.EventEmitter();
gettype('.323',mycallback);
function mycallback(data) {
console.log(data)
}
node.js接收异步任务结果的两种方法----callback和事件广播的更多相关文章
- js如何动态创建表格(两种方法)
js如何动态创建表格(两种方法) 一.总结 一句话总结: 1.方法一:写好创建表格的html代码,将之赋值给div的innerHTML. 2.方法二.直接用创建好的table元素的方法insertRo ...
- 原生JS—实现图片循环切换的两种方法
今天我们主要讲讲如何使用原生JS实现图片的循环切换的方法.多余的话我们就不多说了,我们一个一个开始讲吧. 1 原生JS实现图片循环切换 -- 方法一 在上栗子之前我们先简单介绍一下所用的一些知识点. ...
- 使用js提交form表单的两种方法
提交form表单的时候瑶族一些简单的验证,验证完后才能提交,避免无效提交. 1.当输入用户名和密码为空的时候,需要判断.这时候就用到了校验用户名和密码,这个需要在前端页面写:有两种方法,一种是用sub ...
- js阻止表单提交的两种方法
下面直接看代码. <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...
- js中字符串转换为数值的两种方法的区别
在js中字符串转换为数值的方法有三种:转换函数,强制类型转换,隐式转换 1.转换函数 parseInt() //将字符串转换为整型 parseFloat() //将字符串转换为浮点型 转换函数在 ...
- js实现表单序列化的两种方法。
function serialize(form) { var parts = [], elems = form.elements, i = , len = elems.length, filed = ...
- node服务器中打开html文件的两种方法
方法1:利用 Express 托管静态文件,详情查看这里 方法2:使用fs模块提供的readFile方法打开文件,让其以text/html的形式输出. 代码: var express = requir ...
- js获取json属性值的两种方法
1.json.XXX 2.json["XXX"] 第二种方法使用场景,当属性值是变量时.如图所示:
- JAVA 集合 List 分组的两种方法
CSDN日报20170219--<程序员的沟通之痛> [技术直播]揭开人工智能神秘的面纱 程序员1月书讯 云端应用征文大赛,秀绝招,赢无人机! JAVA 集合 List 分组的两种方法 2 ...
随机推荐
- Linux (x86) Exploit 开发系列教程之二(整数溢出)
(1)漏洞代码 //vuln.c #include <stdio.h> #include <string.h> #include <stdlib.h> void s ...
- Oracle数据库 SET ECHO [ON|OFF]
说明 -- 运行.sql文件时,显示.sql文件中的语句 SET ECHO ON -- 运行.sql文件时,不显示.sql文件中的语句 SET ECHO OFF Oracle 11g Release ...
- pandas数据结构之DataFrame笔记
DataFrame输出的为表的形式,由于要把输出的表格贴上来比较麻烦,在此就不在贴出相关输出结果,代码在jupyter notebook可以顺利运行代码中有相关解释用来加深理解方便记忆 import ...
- go变量的定义并赋值
变量在定义时没有明确的初始化时会赋值为_零值_. 零值是: 数值类型为 `0`, 布尔类型为 `false`, 字符串为 `""`(空字符串). package main impo ...
- Scratch2.0教材(9)——合体大变身
教材说明 ——————— 1.本教材共96节课,适用于3-5年级.40人.40分钟的课堂: 2.初期我会把每节课的代码控制在10行以内,后期再逐渐增加: 3.欢迎提意见. 课程摘要 ——————— [ ...
- (五)Activiti之查看最新版本的流程定义
一.查看最新版本的流程定义 因为每个流程定义都可能会有好几个版本,所以有时候我们有这样的需求,查询出最新版本的流程定义的集合 第一步:我们通过Activiti接口来获取根据流程定义Version升序排 ...
- (九) spring 使用自定义限定符注解
案例一 定义接口 CD.java package interfacepackage; public interface CD { void play(); } 定义接口 player .java p ...
- robot framework 如何获取隐藏元素的文本,以及可见元素的文本
1.下图是获取可见元素的文本内容,运行后得到:${B_name}=公告管理:假设公告管理不可见,那么${B_name}=‘’(为空)
- 【shell脚本】$ 在shell脚本中的使用
shell脚本中 '$' 与不同的符号搭配其表示的意义也会不同 特殊标志符 含义 $0 当前脚本的文件名 $n 传递给脚本或函数的参数.n 是一个数字,表示第几个参数. 例如,第一个参数是$1,第二个 ...
- 关于vue.js的部分总结
1.MVVM和MVC的区别: MVVM:是Model-View-ViewModel的简写,即模型-视图-视图模型 模型:后端传递的数据 试图:所看到的页面 视图模型:mvvm模式的核心,它是连接vie ...