Maison> interface Web> js tutoriel> le corps du texte

Partagez 9 questions d'entretien sur les promesses JavaScript

青灯夜游
Libérer: 2020-07-13 16:33:45
avant
4903 Les gens l'ont consulté

Partagez 9 questions d'entretien sur les promesses JavaScript

Veuillez répondre aux 9 questions suivantes

1. Multiple.catch.catch

var p = new Promise((resolve, reject) => { reject(Error('The Fails!')) }) p.catch(error => console.log(error.message)) p.catch(error => console.log(error.message))
Copier après la connexion
Quel sera le résultat du code ci-dessus ? Veuillez choisir la bonne réponse :
  • [ ] Imprimez le message une fois
  • [x] Imprimez le message deux fois
  • UnhandledPromiseRejectionWarning[ ]
  • [ ] Sortie du programme

Analyse :

rejectNous utilisons la méthode constructeur pour créer une promesse et déclencher l'erreur immédiatement via le rappel

.

.catchpuis.addEventListener(event,callback)fonctionne de manière similaire au.on(event,callback)du DOM ou aude l'émetteur d'événements, oùpeut ajouter plusieurs rappels.

Chacun est appelé avec les mêmes paramètres.

2. Multiple.catch

var p = new Promise((resolve, reject) => { return Promise.reject(Error('The Fails!')) }) p.catch(error => console.log(error.message)) p.catch(error => console.log(error.message))
Copier après la connexion
Quel sera le résultat du code ci-dessus ? Veuillez choisir la bonne réponse :
  • [ ] Imprimez le message une fois
  • [ ] Imprimez le message deux fois
  • UnhandledPromiseRejectionWarning[x]
  • [ ] Sorties du programme

Analyse :

Partagez 9 questions d'entretien sur les promesses JavaScript

resolve()Lors de l'utilisation du constructeur Promise, vous devez appelerreject()ouPromise.reject()rappel. Le constructeur Promise n'utilise pas votre valeur de retour, donc aucune autre promesse créée par

ne sera réellement reçue.

Promise.reject()Quand il n'y a pas de.catchaprèsUnhandledPromiseRejectionWarning, la réponse est

.

3. Liens.then.catchet

var p = new Promise((resolve, reject) => { reject(Error('The Fails!')) }) .catch(error => console.log(error)) .then(error => console.log(error))
Copier après la connexion
Quel sera le résultat du code ci-dessus ? Veuillez choisir la bonne réponse :
  • undefined[x] erreur d'impression et
  • [ ] erreur d'impression deux fois
  • UnhandledPromiseRejectionWarning[ ]
  • undefined[ ]

Analyser

Partagez 9 questions d'entretien sur les promesses JavaScript

.thenLors de la liaison.catchet.then, c'est utile les considérer comme une série d’étapes. Chaque.thenreçoit comme argument la valeur renvoyée par le.thenprécédent. Cependant, si votre « étape » rencontre une erreur, toutes les.catch« étapes » suivantes seront ignorées jusqu'à ce qu'une.thensoit rencontrée. Si vous souhaitez remplacer une erreur, tout ce que vous avez à faire est de renvoyer une valeur non erronée. Accessible via n'importe quel

ultérieur.

Conseil :console.log()undefinedrevient toujours

.

4. Liens.catch

var p = new Promise((resolve, reject) => { reject(Error('The Fails!')) }) .catch(error => console.log(error.message)) .catch(error => console.log(error.message))
Copier après la connexion
Quel sera le résultat du code ci-dessus ? Veuillez choisir la bonne réponse :
  • [x] Imprimez le message d'erreur une fois
  • [ ] Imprimez le message d'erreur deux fois
  • [ ] UnhandledPromiseRejectionWarning
  • [ ] Sortie du programme

Analyse

.catchLors du chaînage de.then, chacun ne traite que l'`.catchou.catch"étape" précédente L'erreur soulevé. Dans cet exemple, le premierconsole.logrenvoie.catch, accessible uniquement en ajoutant.then()après les deux

.

5. Multiple.catch

new Promise((resolve, reject) => { resolve('Success!') }) .then(() => { throw Error('Oh noes!') }) .catch(error => { return "actually, that worked" }) .catch(error => console.log(error.message))
Copier après la connexion
Quel sera le résultat du code ci-dessus ? Veuillez choisir la bonne réponse :
  • [ ] Imprimez le message une fois
  • [ ] Imprimez le message deux fois
  • [ ] UnhandledPromiseRejectionWarning
  • [x ] N'imprimer rien

Parse

Astuce :.catch

peut simplement être ignoré (ou remplacé) en renvoyant une valeur normale ) erreur.

.thenCette astuce ne fonctionne que si un

suivant reçoit la valeur.

6. Le flux entre.then

Promise.resolve('Success!') .then(data => { return data.toUpperCase() }) .then(data => { console.log(data) })
Copier après la connexion
Quelle sera la sortie du code ci-dessus ? Veuillez choisir la bonne réponse :
  • [ ] imprimer « Succès ! » et « SUCCES ! »
  • [ ] imprimer « Succès ! »
  • [x] imprimer "SUCCÈS!"
  • [ ] n'imprime rien

Parsing

return valueConseil : .puis transmet les données dans l'ordre, de.then(value => /* handle value */)Passons au suivant

.

.thenAfin de transmettre la valeur aureturnsuivant,

est la clé.

7. Le flux entre.then

Promise.resolve('Success!') .then(data => { return data.toUpperCase() }) .then(data => { console.log(data) return data }) .then(console.log)
Copier après la connexion
Quel sera le résultat du code ci-dessus ? Veuillez choisir la bonne réponse :
  • [ ] 打印 "SUCCESS!"
  • [ ] 打印 "Success!"
  • [x] 打印 "SUCCESS!" 和 "SUCCESS!"
  • [ ] 不打印任何内容

解析:

有两个console.log调用将被调用。

8..then之间的流程

Promise.resolve('Success!') .then(data => { data.toUpperCase() }) .then(data => { console.log(data) })
Copier après la connexion

以上代码的输出将会是什么?请选择正确的答案:

  • [ ] 打印 "SUCCESS!"
  • [ ] 打印 "Success!"
  • [ ] 打印 "SUCCESS!" 和 "SUCCESS!"
  • [x] 打印undefined

解析:

提示:.then依次传递数据,从返回值到下一个.then(value => /* handle value */)

为了将值传递给下一个.thenreturn是关键。

9..then.catch之间的流程

Promise.resolve('Success!') .then(() => { throw Error('Oh noes!') }) .catch(error => { return 'actually, that worked' }) .then(data => { throw Error('The fails!') }) .catch(error => console.log(error.message))
Copier après la connexion

以上代码的输出将会是什么?请选择正确的答案:

  • [ ] 打印 "Oh noes!" 和 "The fails!"
  • [ ] 打印 "Oh noes!"”
  • [x] 打印 "The fails!"
  • [ ] 打印 "actually, that worked"
  • [ ] 不打印任何内容

解析:

Partagez 9 questions dentretien sur les promesses JavaScript

本文转载自:https://segmentfault.com/a/1190000021255822

英文原文地址: https://danlevy.net/javascript-promises-quiz/

相关教程推荐:JavaScript视频教程

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!

Étiquettes associées:
source:segmentfault.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!