Fragen zum Vorstellungsgespräch zu JS 9 Promise

Fragen zum Vorstellungsgespräch zu JS 9 Promise

1. Mehrere .catch

var p = neues Versprechen((lösen, ablehnen) => {
  ablehnen(Fehler('Die Fehler!'))
})
p.catch(Fehler => console.log(Fehlermeldung))
p.catch(Fehler => console.log(Fehlermeldung))

Was wird die Ausgabe des obigen Codes sein? Bitte wählen Sie die richtige Antwort aus:

  • [ ] Eine Nachricht drucken
  • [x] Drucke die Nachricht zweimal aus
  • [ ]UnbehandeltePromiseRejectionWarning
  • [ ] Programm beenden

Analyse:

Wir erstellen ein Promise mit der Konstruktormethode und lösen über den Reject-Callback sofort einen Fehler aus.

Dann funktioniert .catch ähnlich wie .addEventListener(event, callback) von DOM oder .on(event, callback) von Event Emitter, wo mehrere Rückrufe hinzugefügt werden können. Jeder wird mit den gleichen Argumenten aufgerufen.

2. Mehrere .catch

var p = neues Versprechen((lösen, ablehnen) => {
  return Promise.reject(Error('Die Fehler!'))
})
p.catch(Fehler => console.log(Fehlermeldung))
p.catch(Fehler => console.log(Fehlermeldung))

Was wird die Ausgabe des obigen Codes sein? Bitte wählen Sie die richtige Antwort aus:

  • [ ] Eine Nachricht drucken
  • [ ] Drucke die Nachricht zweimal
  • [x]UnbehandeltePromiseRejectionWarning
  • [ ] Programm beenden

Analyse:

Wenn Sie den Promise-Konstruktor verwenden, müssen Sie entweder den Rückruf „resolve()“ oder „reject()“ aufrufen. Der Promise-Konstruktor verwendet Ihren Rückgabewert nicht und empfängt daher kein weiteres Promise, das von Promise.reject() erstellt wurde.

Wenn nach Promise.reject() kein .catch vorhanden ist, ist die Antwort UnhandledPromiseRejectionWarning.

3. Verkettung von .then und .catch

var p = neues Versprechen((lösen, ablehnen) => {
    ablehnen(Fehler('Die Fehler!'))
  })
  .catch(Fehler => console.log(Fehler))
  .then(Fehler => console.log(Fehler))

Was wird die Ausgabe des obigen Codes sein? Bitte wählen Sie die richtige Antwort aus:

  • [x] Druckfehler und undefiniert
  • [ ] Fehler beim zweimaligen Drucken
  • [ ]UnbehandeltePromiseRejectionWarning
  • [ ]undefiniert

Analyse

Beim Verketten von .then und .catch ist es hilfreich, sie als eine Reihe von Schritten zu betrachten. Jedes .then erhält den vom vorherigen .then zurückgegebenen Wert als Argument. Wenn bei Ihrem „Schritt“ jedoch ein Fehler auftritt, werden alle nachfolgenden „Schritte“ mit der Ausnahme „then“ übersprungen, bis ein „Catch“ auftritt. Wenn Sie einen Fehler überschreiben möchten, müssen Sie lediglich einen fehlerfreien Wert zurückgeben. Der Zugriff ist über jedes nachfolgende .then möglich.

Tipp: console.log() gibt immer „undefined“ zurück.

4. Link.fangen

var p = neues Versprechen((lösen, ablehnen) => {
    ablehnen(Fehler('Die Fehler!'))
  })
  .catch(Fehler => console.log(Fehlermeldung))
  .catch(Fehler => console.log(Fehlermeldung))

Was wird die Ausgabe des obigen Codes sein? Bitte wählen Sie die richtige Antwort aus:

  • [x] Einmalig eine Fehlermeldung ausgeben
  • [ ] Fehlermeldung zweimal ausdrucken
  • [ ] Nicht behandelte PromiseRejectionWarning
  • [ ] Programm beenden

Analyse

Beim Verketten von .catch verarbeitet jeder Schritt nur die Fehler, die im vorherigen .then- oder .catch-„Schritt“ aufgetreten sind. In diesem Beispiel gibt das erste .catch console.log zurück. Auf dieses kann nur zugegriffen werden, indem nach den beiden .catch ein .then() hinzugefügt wird.

5. Mehrere .catch

neues Versprechen((lösen, ablehnen) => {
    lösen('Erfolg!')
  })
  .then(() => {
    Fehler auslösen('Oh nein!')
  })
  .catch(Fehler => {
    return "eigentlich hat das geklappt"
  })
  .catch(Fehler => console.log(Fehlermeldung))

Was wird die Ausgabe des obigen Codes sein? Bitte wählen Sie die richtige Antwort aus:

  • [ ] Eine Nachricht drucken
  • [ ] Drucke die Nachricht zweimal
  • [ ] Nicht behandelte PromiseRejectionWarning
  • [x] Nichts drucken

Analyse

Tipp: .catch kann Fehler einfach ignorieren (oder überschreiben), indem es einen regulären Wert zurückgibt.

Dieser Trick funktioniert nur, wenn das nachfolgende .then den Wert erhält.

6..dann verarbeiten

Promise.resolve('Erfolg!')
  .dann(data => {
    returniere data.toUpperCase()
  })
  .dann(data => {
    console.log(Daten)
  })

Was wird die Ausgabe des obigen Codes sein? Bitte wählen Sie die richtige Antwort aus:

  • [ ] Drucken Sie "Erfolg!" und "ERFOLG!"
  • [ ] Drucken Sie "Erfolg!"
  • [x] Drucken Sie "ERFOLG!"
  • [ ] Nichts drucken

Analyse

Tipp: .then übergibt Daten sequenziell, vom Rückgabewert zum nächsten .then(value => /* handle value */).

Um den Wert an den nächsten zu übergeben, ist „return“ der Schlüssel.

7..dann verarbeiten

Promise.resolve('Erfolg!')
  .dann(data => {
    returniere data.toUpperCase()
  })
  .dann(data => {
    console.log(Daten)
    Rückgabedaten
  })
  .then(Konsole.log)

Was wird die Ausgabe des obigen Codes sein? Bitte wählen Sie die richtige Antwort aus:

  • [ ] Drucken Sie "ERFOLG!"
  • [ ] Drucken Sie "Erfolg!"
  • [x] Drucken Sie "ERFOLG!" und "ERFOLG!"
  • [ ] Nichts drucken

Analyse:

Es werden zwei console.log-Aufrufe aufgerufen.

8..dann verarbeiten

Promise.resolve('Erfolg!')
  .dann(data => {
    Daten.toUpperCase()
  })
  .dann(data => {
    console.log(Daten)
  })

Was wird die Ausgabe des obigen Codes sein? Bitte wählen Sie die richtige Antwort aus:

  • [ ] Drucken Sie "ERFOLG!"
  • [ ] Drucken Sie "Erfolg!"
  • [ ] Druckt „ERFOLG!“ und „ERFOLG!“
  • [x] drucken undefiniert

Analyse:

Tipp: .then übergibt Daten sequenziell, vom Rückgabewert zum nächsten .then(value => /* handle value */).

Um den Wert an den nächsten zu übergeben, ist „return“ der Schlüssel.

9. Fluss zwischen .then und .catch

Promise.resolve('Erfolg!')
  .then(() => {
    Fehler auslösen('Oh nein!')
  })
  .catch(Fehler => {
    return "eigentlich hat das funktioniert"
  })
  .dann(data => {
    throw Error('Das schlägt fehl!')
  })
  .catch(Fehler => console.log(Fehlermeldung))

Oben sind die Details zu 9 JS Promise-Interviewfragen aufgeführt. Weitere Informationen zu JS Promise-Interviewfragen finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Ein tiefer Einblick in JavaScript-Promises
  • Detaillierte Erklärung von Promises in JavaScript
  • Front-End-JavaScript-Versprechen
  • So fügen Sie in JS eine Abbruchfunktion zu einem Versprechen hinzu
  • Verstehen Sie das Versprechen von JavaScript gründlich

<<:  Docker- und Portainer-Konfigurationsmethoden unter Linux

>>:  Zwei Lösungen für das Problem, dass MySQL in bedingten Anweisungen nur eine Information liest

Artikel empfehlen

Holen Sie sich die IP und den Hostnamen aller Hosts auf Zabbix

zabbix Zabbix ([`zæbiks]) ist eine Open-Source-Lö...

Mysql Sql-Anweisungsübungen (50 Fragen)

Tabellenname und Felder –1. Studentenliste Studen...

Lösung für den Fehler, dass IE6 select nicht durch div abgedeckt werden kann

Verwenden Sie div, um eine Maske zu erstellen oder...

Docker-Container greift auf MySQL-Operationen des Hosts zu

Hintergrund: Es gibt ein Flask-Projekt, das eine ...

10 wichtige Unterschiede zwischen HTML5 und HTML4

HTML5 ist die nächste Version des HTML-Standards....

Detaillierte Verwendung des JS-Arrays für jede Instanz

1. forEach() ist ähnlich wie map(). Es wendet ebe...

XHTML-Einführungstutorial: Anwendung von Tabellen-Tags

<br />Tabelle ist ein umständliches Tag in X...

9 praktische Tipps zum Erstellen von Webinhaltsseiten

Inhalt 1. Geben Sie den Lesern einen Grund zu blei...

Erste Erkundung gängiger Befehle für Docker-Anfänger

Bevor wir Docker offiziell verwenden, machen wir ...

Analyse des Parameterübertragungsprozesses des Treibermoduls in Linux

Deklarieren Sie den Parameternamen, den Typ und d...

So importieren Sie CSS-Stile in externe HTML-Stylesheets

Der Link-In-Stil besteht darin, alle Stile in ein...

Spezifische Verwendung von CSS-Inhaltsattributen

Das Inhaltsattribut wird im Allgemeinen in den Ps...

Mehrere Möglichkeiten zur manuellen Implementierung von HMR in Webpack

Inhaltsverzeichnis 1. Einleitung 2. GitHub 3. Gru...