Всем привет. Имеется данный код:
.run(["$rootScope", "$cacheFactory", "$websocket", function($rootScope, $cacheFactory, $websocket) {
$rootScope.cache = $cacheFactory('PJ');
$rootScope.ws = $websocket('ws://localhost');
}])
.controller('profileInfo', ['$scope', '$http', '$cookieStore', 'Websocket', '$rootScope', function($scope, $http, $cookieStore, Websocket, $rootScope) {
var subject = 'user';
var param = '"user": {"login": "'+ $cookieStore.get('uname') +'"}';
var method = 'get_info';
Websocket.get(param, subject, method)
.then(function(data) {
alert(data);
});
var subject = 'user';
var param = '"user": {"login": "'+ $cookieStore.get('uname') +'"}';
var method = 'get_projects';
$scope.keys = {};
Websocket.get(param, subject, method)
.then(function(data) {
alert(data);
});
}])
.factory('Websocket',['$rootScope', '$q', function($rootScope, $q) {
function randomId(){
var s ='', abd ='abcdefghijklmnopqrstuvwxyz0123456789', aL = abd.length;
while(s.length < '40')
s += abd[Math.random() * aL|0];
return s;
}
var get = function(param, subject, method) {
var id = randomId();
var deferred = $q.defer();
$rootScope.ws.send('{"id": "' + id + '", "type": "request", "version": "v.2.0", "method": "' + method + '", "subject": "' + subject + '", "parameters": {' + param + '}}');
$rootScope.ws.onMessage(function (message) {
deferred.resolve(message.data);
});
return deferred.promise;
}
return {
get: get
};
}]);
Но результат первого запроса грузится во 2 запрос.
Т.е ответные данные из этого блока:
var subject = 'user';
var param = '"user": {"login": "'+ $cookieStore.get('uname') +'"}';
var method = 'get_info';
Websocket.get(param, subject, method)
.then(function(data) {
alert(data);
});
Попадают в этот блок:
var subject = 'user';
var param = '"user": {"login": "'+ $cookieStore.get('uname') +'"}';
var method = 'get_projects';
$scope.keys = {};
Websocket.get(param, subject, method)
.then(function(data) {
alert(data);
});
Используется Angular Websocket