gpt4 book ai didi

javascript - Node util.inherits 和这个问题

转载 作者:行者123 更新时间:2023-11-30 17:45:29 26 4
gpt4 key购买 nike

我正在尝试解决 Node 服务器中的“这个问题”。如果我不将以下 worker.stuff 替换为 worker.stuff.bind(worker),它就不起作用。

有没有办法在 Worker 类本身中添加 bind每次调用函数时都使用它很无聊。

这是服务器:

var app = require("express")()
, Worker = require('./worker')
, worker = new Worker();

app.get("/stuff", worker.stuff);

worker.on('done', function () {
console.log('done')
});

app.listen(3000);

这是 worker :

function Worker(options) {}

require('util').inherits(Worker, require('events').EventEmitter);

Worker.prototype.stuff = function (req, res) {
this.emit('done');
res.send();
}

module.exports = Worker;

最佳答案

这是我能想到的最好的:

function Worker(options) {
var self = this;

this.stuff = function (req, res) {
self.emit('done');
res.send();
}
}

require('util').inherits(Worker, require('events').EventEmitter);

module.exports = Worker;

在构造函数中定义所有方法,并引用封闭的 self 而不是 this

我可能会硬着头皮在必要时使用 bind

关于javascript - Node util.inherits 和这个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20249439/

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