エレガントなハンドル非同期でJavaScriptと異常待ちます

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 ();
戻り状態が拒否約束

約束の解決状態を待って、またはキャッチせず、両者が直接つながる
拒否状態を約束して待つ、キャッチが異常復帰異常な結果をキャッチします
 

おすすめ

転載: www.cnblogs.com/liulun/p/11516014.html