jquery - how to use q.all in Angular Js? -
i using angular q.all function. not working properly
var app = angular.module('angularjs-starter', []); app.controller('mainctrl', function($scope, myservice) { var a=1,b=2; myservice.doboth(a,b).then(function(a){ $scope.blah =a; }); }); app.factory('myservice', function($http, $q) { return { doboth: function(a,b){ $q.all([ (function() { var d = $q.defer(); $http.get('foo.json').then(function(data){ d.resolve(data); }); return d.promise; })(), (function() { var d = $q.defer(); $http.get('bar.json').then(function(data){ d.resolve(data); }); return d.promise; })() ]).then(function(responses) { console.log(responses); //array of responses }); } } }) i have error
typeerror: cannot read property 'then' of undefined @ new (app.js:5)
$http.get() returns promise. need creating deferred promise redundant. need return promise returned $q.all(), make work controller.
var app = angular.module('angularjs-starter', []); app.controller('mainctrl', function($scope, myservice) { var a=1,b=2; myservice.doboth(a,b).then(function(response){ var foo = response[0]; // foo result var bar = response[1]; // bar result }); }); app.factory('myservice', function($http, $q) { return { doboth: function(a,b){ return $q.all([ $http.get('foo.json'), $http.get('bar.json') ]); } }; });
Comments
Post a Comment