我有一个是被通过socket.io事件调用的函数。 这个功能是另一种模式。 我要确保每次调用该函数模块中的变量没有被前面函数调用改变。服务器变量
我知道如何在其他语言中做到这一点:创建一个对象的新实例,调用函数,但我似乎无法得到这个在JavaScript工作。
的代码看起来是这样的:
socket.io模块:其中函数被调用
// -- all events -- //
io.on('connection', function (socket) {
console.log('user connected');
socket.on('increase', function (data) {
var increaser = require('./increase.js');
increaser.increase();
});
});
增加模块,应打印1次每次,但打印1..2..3..4 ....
/*jslint node: true */
"use strict";
// -- variables -- //
var counter = 0;
module.exports = {
increase : function() {
counter += 1;
console.log(counter);
}
};
我想知道如何做到这一点,因为我的服务器上的函数被调用,调用几个asyncronous功能,我想确保所有变量留像他们直到第如果另一个客户端连接并触发相同的事件,那么整个功能将完成并且不会改变。
现在你可以摆脱'var counter = 0' –
是的正确@JoseHermosillaRodrigo。现在更正:-) – Aruna
@Aruna所以我应该导出函数在导出函数中使用this.variable的每个变量? – Vujukas