web:javascript:promise
Ceci est une ancienne révision du document !
Table des matières
Principe des Promises
Promises multiples
Pour attendre le succès de plusieurs promesses d'un coup, on utilise Promise.all().
Un exemple d'utilisation qui s'occupe de :
- effectuer des requêtes Http via fetch (qui utilise le système de Promise)
- effectuer un parsing Json de la réponse (quand elle arrive). Là aussi, la méthode json() repose sur le système de Promise.
async function synced_json_fetch(urls = [], callback) { promises = []; // start fetching each url // we don't store the fetch promises, we juste use it right away (asynchronously, of course) to start to parse its Json // we store json parsing promises into a new array request_urls.forEach(url => promises.push( fetch(url).then(function(response) { return response.json(); }) )) // we use a single then() for multiple promises (that way, we make them sync, meaning we will wait for the last of them to finish before calling the callback function) return Promise.all(promises).then(callback); } // exemple of use request_urls = [ "http://url1", "http://url2", "http://url3" ]; synced_json_fetch(request_urls, function(values) { // code executed only when every url fetching and parsing will be done console.log(values); });
web/javascript/promise.1586436062.txt.gz · Dernière modification : le 09/04/2020 à 12:41 de Yosko