您好,我正在构建一个 angularjs 服务,它将通过 socket.io 使用 websockets 与后端 (node.js) 进行通信。我在网上找到了一段代码,但我不太明白它是如何工作的。特别是在“var args = arguments”下的行中。帮忙?
angularjs_service.js
app.factory('socket', function ($rootScope) {
var socket = io.connect();
return {
on: function (eventName, callback) {
socket.on(eventName, function () {
var args = arguments;
$rootScope.$apply(function () {
callback.apply(socket, args);
});
});
},
emit: function (eventName, data, callback) {
socket.emit(eventName, data, function () {
var args = arguments;
$rootScope.$apply(function () {
if (callback) {
callback.apply(socket, args);
}
});
})
}
};
});
最佳答案
这就是 javascript 背叛它对未命名变量的厌恶之处。变量 arguments
是指传递给函数的参数数组。您看到的是 Angular 代码获取函数参数的数组并将它们传递给应用程序。
function(myVar1, myVar2){
console.log(arguments.length);
}
将输出 2
。
关于node.js - Angularjs socket.io 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21372683/