当前位置 : 主页 > 网页制作 > Nodejs >

node.js – Angularjs socket.io服务

来源:互联网 收集:自由互联 发布时间:2021-06-16
嗨,我正在构建一个 angularjs服务,它将通过socket.io使用websockets与后端(node.js)进行通信.我在网上找到了一段代码,但我不太明白它是如何工作的.特别是在“var args = arguments”下的行上.救命?
嗨,我正在构建一个 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引用传递给函数的参数数组.你看到的是角度代码抓取函数参数的数组并将它们传递给apply.

function(myVar1, myVar2){
    console.log(arguments.length);
}

输出2.

资料来源:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions_and_function_scope/arguments

网友评论