Maison > Article > interface Web > Explication détaillée du traitement asynchrone ES6 et ES7 (exemple de code)
Cet article vous apporte une explication détaillée (exemple de code) du traitement asynchrone dans ES6 et ES7. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
Maîtrisez le traitement asynchrone ES6/ES7 en une seule fois
Assumez un scénario, attendez que votre petite amie s'endorme et aille faire du shopping. Si cela prend plus de 5 secondes, ne le faites pas. attendez et jouez à des jeux par vous-même...Méthode d'écriture de promesse
Méthode d'appel de chaîne de promesse, uniquement lorsque le traitement asynchrone est réussi, revenez à l'utilisation .then(data => ; {}) pour obtenir les données une fois le traitement asynchrone réussi
Lorsqu'une erreur se produit dans le traitement asynchrone, .then(err => {}) sera appelé et une exception sera obtenue
En d'autres termes , il y a deux méthodes dans .then( data => {}, err => {}) Une fonction de rappel en paramètre
ou il existe une deuxième façon d'écrire .then(data => {}) .catch(err => {})
function waiting (ms) { return new Promise ( (resolve, reject) => { if(ms > 5000) { reject('long time') } else { setTimeout(() => { resolve(ms); }, ms) } }) } function main () { waiting(3000).then( success => { console.log(success); }, err => { console.log(err) }) } // 或者 function main() { waiting(3000).then(data => { console.log(data) }).catch(err => { console.log(err); }) }
async indique qu'il y a une opération asynchrone dans cette fonction, et wait est toujours écrit dans le fonction déclarée par async.
Lorsqu'elle rencontre awit, la fonction cessera de s'exécuter, attendra la fin de l'opération asynchrone, puis exécutera les instructions suivantes
Le résultat obtenu par l'opération asynchrone est le retour du paramètre du rappel de résolution. function
L'exception est obtenue via le paramètre de fonction de rappel de rejet
Notez que lors de la capture d'une exception, nous devons souvent utiliser la méthode try catch dans le corps de la fonction asynchrone pour obtenir l'exception
let sleep = ms => { return new Promise ( (resolve, reject) => { if(ms > 5000) { reject('long time') } else { setTimeout(function() { resolve(ms) } ,ms) } }) } let play = (ms) => { console.log(`I wait you ${ms} s`) } let main = async () => { try{ let result = await sleep(3000); play(result) } catch (err) { throw err } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!