Dieses Mal bringe ich Ihnen das Versprechen, eine asynchrone Implementierung zu implementieren. Was sind die Vorsichtsmaßnahmen für das Versprechen, eine asynchrone Implementierung zu implementieren? Das Folgende ist ein praktischer Fall.
Um die Lesbarkeit zu gewährleisten, verwendet dieser Artikel eine freie Übersetzung anstelle einer wörtlichen Übersetzung und der Quellcode wurde umfassend geändert. Darüber hinaus liegt das Urheberrecht dieses Artikels beim ursprünglichen Autor und die Übersetzung dient nur zum Lernen.
Wenn Sie asynchronen Code mit Promise schreiben, verwenden Sie Reject, um Fehler zu behandeln. Manchmal ignorieren Entwickler dies, was dazu führt, dass einige Fehler nicht behandelt werden. Zum Beispiel:function main() { asyncFunc() .then(···) .then(() => console.log('Done!')); }
Node.js abfangen.
Unbehandelter Promise-Fehler im Browser
Einige Browser (z. B. Chrome) sind in der Lage, nicht behandelte Promise-Fehler abzufangen.unbehandelte Ablehnung
Hören Sie sich das unhandledrejection-Ereignis an, um nicht behandelte Promise-Fehler zu erfassen:
window.addEventListener('unhandledrejection', event => ···);
-Attribute verfügt:
Versprechen: Versprechen ablehnen Grund: Ablehnungswert des Versprechens Beispielcode:window.addEventListener('unhandledrejection', event => { console.log(event.reason); // 打印"Hello, Fundebug!" }); function foo() { Promise.reject('Hello, Fundebug!'); } foo();
window.addEventListener('unhandledrejection', event => { console.log(event.reason); // 打印"Hello, Fundebug!" }); window.addEventListener('rejectionhandled', event => { console.log('rejection handled'); // 1秒后打印"rejection handled" }); function foo() { return Promise.reject('Hello, Fundebug!'); } var r = foo(); setTimeout(() => { r.catch(e =>{}); }, 1000);
Unbehandelter Promise-Fehler in Node.js
Hören Sie sich das unhandledRejection-Ereignis an, um nicht behandelte Promise-Fehler zu erfassen: Process.on('unhandledRejection', (Grund, Versprechen) => ···); Beispielcode:process.on('unhandledRejection', reason => { console.log(reason); // 打印"Hello, Fundebug!" }); function foo() { Promise.reject('Hello, Fundebug!'); } foo();
Hinweis: Node.js v6.6.0+ meldet standardmäßig nicht behandelte Promise-Fehler, daher ist es in Ordnung, das unhandledrejection-Ereignis nicht abzuhören.
Das Node.js-Fehlerüberwachungs-Plug-in von Fundebug lauscht auf das unhandledRejection-Ereignis, sodass es automatisch unbehandelte Promise-Fehler erkennen kann. Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website! Empfohlene Lektüre:Das obige ist der detaillierte Inhalt vonPromise wird asynchron implementiert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!