带有阅读文本文件的事件发送器

编程入门 行业动态 更新时间:2024-10-08 07:32:39

带有阅读<a href=https://www.elefans.com/category/jswz/34/1754446.html style=文本文件的事件发送器"/>

带有阅读文本文件的事件发送器

我有一个包含相同数据的多行文本文件,例如:意大利辣香肠比萨饼我想要制作eventEmmiter,该文件在读取此文件时会执行某些事件。例如,如果文本中有意大利辣味香肠,则将输出意大利辣味香肠事件,然后输出结果事件。我不知道如何绑定eventemmiter和读取文件这就是我试图做的]

const fs = require('fs');
const EventEmitter = require('events');
let readstream = fs.createReadStream('text.txt', {encoding: 'utf8'});
readstream.on('data', (data)=> {
         data.toString();
    })

const emitter = new EventEmitter();
emitter.on('result', (data)=> {
    console.log(`enjoy your pizza`);
})
emitter.on('peperoni', (data)=> {
    if (data.includes("peperonu")==1) {
        console.log(`event peperoni is ${data}`);
        emitter.emit('result', data);
    }
})
emitter.on('margarita', (data)=> {
    if (data.includes("margarita")==1) {
        console.log(`event margarita is ${data}`);
        emitter.emit('result', data);
    }
})
emitter.emit('peperoni', readstream.on);
回答如下:

您可以使用readline,这将返回一个可读的界面,并产生每一行。在我的示例中,我发出一个result事件,但是您可以注册并更改此事件以适合您的需要。

const fs = require("fs");
const EventEmitter = require("events");
const readline = require("readline");

const emitter = new EventEmitter();

emitter.on("result", (line) => {
    console.log(line);
});

async function main() {
    const readStream = fs.createReadStream("text.txt", { encoding: "utf8" });

    const rl = readline.createInterface({
        input: readStream,
        crlfDelay: Infinity
    });

    for await (const line of rl) {
        if (line.includes("margarita")) {
            console.log(`event margarita is ${line}`);

            emitter.emit("result", line);
        }

        if (line.includes("peperoni")) {
            console.log(`event peperoni is ${line}`);

            emitter.emit("result", line);
        }
    }
}

main();

更多推荐

带有阅读文本文件的事件发送器

本文发布于:2024-05-07 05:46:14,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1754584.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:文本文件   事件

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!