約束を解決するにはES6

JavaScriptでは、すべてのコードは、シングルスレッドの実行です。

ブラウザが約束をサポートしているかどうか1.テスト

        「厳格な使用」;
        新しいプロミス(関数(){});
        console.log( '支援の約束!');
2。
    <! - Axiosは、ブラウザを使用することができ、HTTPライブラリの約束に基づいて
    でとのNode.jsを- > 
    < スクリプトSRC =「https://cdnjs.cloudflare.com/ajax/libs/axios/0.19.0 /axios.min.js " > 
    </ スクリプト> 
    < スクリプト> 
        letのユーザー名; 
        constのusersPromise = axios.get(' https://api.github.com/users ' // イベントのリスニング
        usersPromise.then(REPONSE => {
             // にconsole.log(REPONSE); 
            ユーザ名= reponse.data [ 0 ]の.login;
             //バックプロミス
            戻りaxios.get( `HTTPS:// api.github.com/users /} $ {ユーザー名/ repos`); 
        })を(REPONSE。=> { 
            にconsole.log(reponse.data); 
        })
        / / リスニングエラーがキャッチを生じ
キャッチ(ERR => { 
            console.error(ERR)
        })
    </ スクリプト>

内部REPONSEデータ

3.実践規範

(1)約束の成功事例は、(パラメータ名を変更する)reslove

        // reslove着信データが正常
        // それが情報を返すことに失敗した場合拒否 
        CONST = P 新しい新しいプロミス((reslove、リジェクト)=> { 
            たsetTimeout(() => { 
                reslove( 'この成功は' 
            }、 2000 )。
        })
        p.then(データ => {
             // 成功情報
            にconsole.log(データ); 
        })

 (2)約束の失敗は、(パラメータ名を変更するために)拒否します

        // reslove着信データ成功
        // それは情報が拒否返すために失敗した場合 
        CONST = P 新しい新しいプロミス((reslove、リジェクト)=> { 
            たsetTimeout(() => { 
                (拒否 'される。この成功' 
            }、 2000 )。
        })
        p.then(データ => { 
            にconsole.log(データ); 
        。})キャッチ(ERR => {
            // 故障情報
            console.error(ERR); 
        })

 複数のを使用して4.約束

  Promise.all(反復可能)メソッドは、インスタンスプロミスを返します

   すべては、完成された反復可能なパラメータの約束の成功コールバック内にあるコールバックインスタンス障害ので、失敗した約束のパラメータがある場合。コード内でキャッチを見つけるに失敗     

Promise.raceは(反復可能)メソッドは、イテレータ一度約束を解決したり、解決したり拒否されます約束に戻ることを拒否し、約束を返します。ヒント:という、タイマーの時間に注意してください。

 
        CONST usersPromise =新しいプロミス((解決、リジェクト)=> {
            setTimeout(()=> {
                解決([ 'mojombo'、 'vanpelt'、 'wycats'])。
            }、2000)。
        });
        CONST moviePromise =新しいプロミス((解決、リジェクト)=> {
            setTimeout(()=> {
                //決意({名: 'それをお父さんをレスリング!'、評価:9.2、年:2019});
                拒否(エラー( 'いいえmoviePromise'))
            }、500)。
        });

        // Promise.all([usersPromise、moviePromise])
        Promise.race([usersPromise、moviePromise])
        .then(応答=> {
            //解体割り当て
            constの[ユーザー、映画] =応答;
            console.log(ユーザー);
            console.log(映画);
        })
        .catch(ERR => {
            console.error(ERR)。
        })

 

 

 

 

 

おすすめ

転載: www.cnblogs.com/linxim/p/11769752.html