Promiseの紹介と基本的な使用法

プロミスとは

  • 簡単に言えば、Promiseは非同期プログラミングのソリューションです。

なぜ約束があるのですか?

まず、非同期と同期とは何かを理解しましょう。

  • 同期:レストランに行き、場所を見つけてウェイターに電話するとします。このとき、ウェイターは「同期」ウェイターであると申し訳ありません。このテーブルを提供した後にのみ挨拶します。そのテーブルのゲストは明らかにすでに食べており、メニューなどの小さなアクションが必要ですが、ウェイターは、他の誰かの大きなアクションが完了するまで待ってから、再び挨拶するように求めています。これは同期の問題です。つまり、「注文」1234で納品された作業は、1234の注文で完了する必要があります。
  • 非同期:Aによって提供された時間のかかる作業をシステムに引き渡した後、Bによって提供された作業を続行します。システムが前の作業を完了した後、コールバックまたはイベントを介してAの残りの作業を続行できます。
    ABの作業の完了順序は、それらの配信順序とは関係がないため、「非同期」と呼ばれます。

使用する

Promise:非同期リクエストを行う場合、
Promiseは内部的にカプセル化されたクラスです。そのコンストラクターは新しいときに実行されます(1.状態情報を保存します。2。渡した関数を実行します)。
着信コールバック関数を実行すると、2つ渡されますパラメータ、解決および拒否、それ自体が関数です

  new Promise((resolve,reject)=>{
    
    
  //模拟异步请求
            setTimeout(() => {
    
    
                //执行成功时调用resolve
                resolve();
                //执行失败时调用reject
                reject();
            }, 3000);
        }).then(()=>{
    
    
            //执行resolve时会来到then
            console.log('hello');
        }).catch(()=>{
    
    
            //执行失败会来到catch
            console.log('error')
        })

非同期リクエストが成功または失敗したときにパラメータを渡すことができます。これは、ネットワークリクエストを行うときに取得したデータをさらに処理することと同じです。

 new Promise((resolve,reject)=>{
    
    
            setTimeout(() => {
    
    
                //执行成功时调用resolve
                resolve('执行成功');//resolve中传入的参数对应到then中回调函数中的参数
            }, 3000);
        }).then((data)=>{
    
    
            //执行resolve时会来到then
            console.log(data);
        })

おすすめ

転載: blog.csdn.net/weixin_45925906/article/details/113104828