我在学习socket.io的时候对着书上的例子照着码,遇到了一段不是很理解 node
socket.on('search', function (q, fn) {
superagent.get(api + q)
.end(function (err, res) {
if (err) console.log(err);
console.log(fn());//undefined
fn(JSON.parse(res.text));
});
});
浏览器
socket.emit('search', song, function (songs) {
console.log(songs);//在浏览器执行
return 1;
});
这段代码看起来像是前端在emit 的时候传了一个回调给node那边,然后superagent 抓完数据后执行了回调, 但是结果是最终emit给的回调是在浏览器执行的
不是很明白为什么在node中调用会在浏览器执行?