【发布时间】:2014-10-24 14:54:54
【问题描述】:
我需要帮助使我的 javascript 异步,因为我正在使用 node.js 从数据库中查询。我正在使用 node.js 和 socket.io。如果我使用 setTimeout() 函数,代码可以工作,但我想让我的代码更可靠,所以我正在尝试实现回调。但是,我不知道如何在回调函数中正确使用“socket.on()”。我认为问题在于我正在嵌套 socket.on 调用,而第二个“socket.on()”调用没有执行。任何帮助将不胜感激,谢谢。
/*server side*/
socket.emit(variable1);//not important
socket.emit(variable2);//not important
//code above isn't important, I just wanted to show how data is used from my queries
/*client side*/
var socket = io.connect('123.456.789.123:3000');
var data = " ";//data I need to pass around
socket1(data, function(){
socket2(data)
});
function socket1(data, callback) {
socket.on('variable1', function (data) {
console.log("1");
callback();
}, callback)
}
function socket2(data) {
console.log("2");
socket.on('variable2', function (data) {
console.log("3");
})
}
输出为“12” 应该是“123”
【问题讨论】:
标签: javascript node.js asynchronous callback socket.io