gpt4 book ai didi

javascript - 事件和函数之间的区别?

转载 作者:数据小太阳 更新时间:2023-10-29 06:10:37 25 4
gpt4 key购买 nike

我是 Node 的新手,我很难理解事件和函数之间的主要区别。两者都需要被触发,那么如果我们无论如何都必须触发它,为什么我们还需要一个事件呢?

这与触发函数有何不同?

示例代码:

var events = require('events');
var eventEmitter = new events.EventEmitter();

eventEmitter.on('event1', function () {
console.log('Event 1 executed.');
eventEmitter.emit('event2');
});

eventEmitter.on('event2', function() {
console.log('Event 2 executed.');
});

eventEmitter.emit('event1');
console.log('Program Ended.');

我们可以通过函数实现相同的结果,对吗?

我确信这在 Node 中非常重要(否则它不会存在,哈哈),但我很难理解它。

感谢帮助! :)

最佳答案

事件处理异步操作。从可互换的意义上说,它们与功能并没有真正的关系。

eventEmitter.on 本身是一个函数,它有两个参数,事件名称,然后是事件发生时要执行的函数(回调)。

eventEmitter.on(evt, callback)

没有办法告诉何时会发出事件,因此您提供一个回调以在事件发生时执行。

在您的示例中,您控制着何时触发事件,这与现实世界的使用不同,在现实世界中您可能有一个服务器监听可以随时连接的连接。

server.listen('9000', function(){
console.log('Server started');
});

server.on('connection', function(client){
console.log('New client connected');
doSomethingWithClient(client);
});

//series of synchronous events
function doSomethingWithClient(client){
//something with client
}

对于server.listen,服务器不会立即启动,一旦准备就绪就会调用回调

server.on('connection') 监听客户端连接,它们可以随时到来。然后在连接发生时触发该事件,从而导致运行回调。

然后是 doSomethingWithClient 这只是一个函数,当客户端连接发生时要完成一组同步操作。

关于javascript - 事件和函数之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35395342/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com