Home > Web Front-end > JS Tutorial > How to handle multiple promises in AngularJS_AngularJS

How to handle multiple promises in AngularJS_AngularJS

WBOY
Release: 2016-05-16 15:16:35
Original
959 people have browsed it

When using AngularJS to handle promises, sometimes you will encounter situations where you need to handle multiple promises.

The simplest solution is to have then for every promise. As follows:

var app = angular.module("app",[]);
app.controller("AppCtrl", function($q. $timeout){
var one = $q.defer();
var two = $q.defer();
var three = $q.defer();
$timeout(function(){
one.resolve("one done");
}, Math.random() * 1000)
$timeout(function(){
two.resolve("two done");
}, Math.random() * 1000) 
$timeout(function(){
three.resolve("three done");
}, Math.random() * 1000) 
functioin success(data){
console.log(data);
}
one.promise.then(success);
two.promise.then(success);
three.promise.then(success);
})
Copy after login

Is there a better way?

The $q.all method can accept an array of promises and is called as follows:

var all = $q.all([one.promise, two.promise, three.promise]);
all.then(success);
Copy after login

What is promise?

Promise is a method of processing values ​​asynchronously. Promise is an object, which represents the final possible return value or exception thrown by a function. When dealing with remote objects, we can regard them as remote objects. of an agent. If promise is also a kind of asynchronous processing method, then we will think of its difference from XHR and $.ajax?

It is customary for js to use closures or callbacks to respond to asynchronously returned data, such as XHR requests after the page is loaded. We can interact with the data normally as if it had been returned without relying on the triggering of the callback function.

So what problem is the promise proposed by ng intended to solve? Callbacks have been used for a long time, and usually debugging becomes very difficult if there are callbacks that depend on other callbacks, and errors need to be displayed after each call. The difference is that promises provide another abstraction: these functions return promise objects.

Why use promise

One of the benefits of using promises is that you escape the fixed thinking logic of callbacks. Promise makes the asynchronous processing mechanism look more like synchronization. Based on synchronous functions, we can capture return values ​​and exception values ​​as expected. Errors can be caught at any moment in the program and bypass subsequent code that relies on program exceptions. We don't need to think about the benefits of this synchronization. Therefore, the purpose of using promises is to obtain functional combination and error bubbling capabilities while maintaining the ability to run the code asynchronously.

Promise is a first-class object and comes with some conventions.

• Only one resolve or reject will be called.

• If a promise is executed or rejected, handlers that depend on them will still be called.

• Handlers are always called asynchronously.

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template