app.service("service1",function($q,$timeout){
this.number1 = function(num1) {
var deferred = $q.defer();
var result1 = Math.floor((Math.random()*5)+1);
deferred.resolve(result1)
return deferred.promise;
}
});
app.service("service2",function($q){
this.number2 = function(num2) {
var deferred = $q.defer();
//var num2=Math.floor((Math.random()*5)+1);
var result2 = Math.floor((Math.random()*5)+1);
// deferred.reject(0)
deferred.resolve(result2)
return deferred.promise;
}
});
app.service("addservice",function($q){
this.addition = function(num1 , num2) {
var deferred = $q.defer();
var result = num1+num2
deferred.resolve(result)
return deferred.promise;
}
});
app.controller('myCtrl', function($scope, addservice,service1,service2,$q) {
var p1 = service1.number1().then(function (data) {
$scope.result1 = data;
return data;
});
var p2 = service2.number2().then(function (data) {
$scope.result2 = data;
return data;
});
$q.all([p1, p2]).then(function () {
addservice.addition($scope.result1,$scope.result2)
.then(function (data) {
$scope.result = data;
})
});
});
Как использовать $timeout
, чтобы оба числа появлялись через некоторое время?
И как использовать deferred.reject()
для числа больше 5, которое появляется случайно?Нам нужно только deferred.resolve()
чисел меньше 5.