1
我一直在玩Node.js一段時間。在Node.js中等待事件
我在我的服務器下面這段腳本:
socket.on('auth', function(uid, key) {
client.hgetall(uid, function (err, data) {
console.log(data);
if(key != data['key']) {
socket.disconnect();
}
this.user = data;
});
});
socket.on('loginGame', function(gameId) {
checkAuth();
console.log(user);
if(!games[gameId]) {
games[gameId] = {};
}
games[gameId][uid] = uid;
});
在我的客戶;
socket.on('connect', function(){
socket.emit('auth', 1, 1);
socket.emit('loginGame', 1);
});
當我運行這段代碼,loginGame功能AUTH功能之前,因爲我做的(使用Redis的)I/O完成。我知道這是node.js的一個特性,但我認爲我錯過了一些東西。在運行任何函數之前,我如何解決這個問題,因爲auth函數需要完成。 (我有幾個功能需要串行運行)
我找到了一個node.js模塊:https://github.com/creationix/step。但是,這是唯一的選擇嗎?我認爲這是大多數node.js開發人員可能需要的。我對JS也不太擅長。
解決此問題的最佳和最優雅的方式是什麼?
感謝,
是的工作,謝謝! – Merinn