• 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) }
  • 相关阅读:
    HTML标签和属性三
    HTML标签和属性二
    HTML标签和属性一
    小程序相关面试题
    Vue路由的hash模式与history模式的区别?
    android中VideoView播放sd卡上面的视频
    Android中app开机自启动的开发
    java中byte,byte[]和int之间的转换
    Android多activity启动两种方式浅谈
    Android开发用到的几种常用设计模式浅谈(一):组合模式
  • 原文地址:https://www.cnblogs.com/saintdingspage/p/11737419.html
Copyright © 2020-2023  润新知