let handler = async function(needErr) {
return new Promise((resolve, reject) => {
if (needErr) {
reject(new Error('执行失败,给出错误'))
} else {
resolve('执行成功,没有报错')
}
})
}
let run = async function() {
let result = await handler(false).catch();
console.log(result);
result = await handler(true).catch();
console.log(result);
}
run();
出力:
执行成功,没有报错
(node:3428) UnhandledPromiseRejectionWarning: Error: 执行失败,给出错误
非同期関数は常に約束の例を返します。
約束を返し、どちらか
または内部コールが待って、
何もしなかった場合でも、それは約束を返し、
機能、マークされた非同期限りが、それは約束がオブジェクトを返す
ので、上記のハンドラ関数は、約束のインスタンスを返します。
非同期機能は、約束の拒否を返した場合、その後の約束はまだ拒否され続けます。
このコード行は:結果をみましょう=ハンドラ(偽待つ ).catch();
リターン・ステータスは、約束の解決である
結果=待つハンドラ(真).catch ();
戻り状態が拒否約束
約束の解決状態を待って、またはキャッチせず、両者が直接つながる
拒否状態を約束して待つ、キャッチが異常復帰異常な結果をキャッチします