如何将函数作为参数从一个函数传递给另一个函数?

时间:2016-07-22 15:07:15

标签: javascript angularjs socket.io

我想将值传递给回调,所以我可以使用另一个函数,所以下面的消费者一直在接收正在工作的消息,现在我想在消费者每次收到消息时将这些消息传递给io所以我可以emit到客户端。所以我不能在io.connection内调用消费者函数如何使用回调从消费者那里获得价值,并确保它发出正确的套接字?

app.js

consumer.on('message', function(message, callback) {
    logger.log('info', message.value);
    callback(message.value);
});

io.on('connection', function(socket, callback) {
    callback(message.value);
    socket.emit('ditConsumer', message.value);
});

clientSocketFactory.js

angular.module('loggingApp').factory('socket', function ($rootScope) {
    'use strict';
    var server = 'http://localhost:3000';
    var socket = io.connect(server,{'forceNew': true });
    function socket_reconnect() {
        socket.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);
                        }
                    });
                })
            },
            disconnect: function () {
                socket.disconnect();
            },
            reconnect: function () {
                socket_reconnect();
            },
        };

});

ctrl.js

$scope.event = [];
 socket.on('ditConsumer',function (data) {
        $scope.event.push(data);
    });

0 个答案:

没有答案