Angularjs socket.io service
angularjs, angularjs-directive, angularjs-scope, node.js, socket.io
Solution
This is where javascript betrays its aversion to unnamed variables. The variable `arguments` refers to an array of arguments that are passed in to a function. What you see there is angular code grabbing an array of the function's arguments and passing them to apply.
function(myVar1, myVar2){
console.log(arguments.length);
}
Would output `2`.
Source: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions_and_function_scope/arguments
Problem
Hi I'm building an angularjs service that will use websockets via socket.io to communicate with backend (node.js). I found a snippet of code online but I don't quite understand how it works. Specifically on the lines under "var args = arguments". Help? 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); } }); }) } }; }); ```