オールインワン!ジャバスクリプト.


わかりましたそれで、出発する前に、我々は互いに約束をします😅
私の約束:私はJavaScriptの約束を説明しようとすると、最善の方法で可能です!
あなたの約束:完全なブログを読んでください!😃
今のところ、我々の約束の両方が保留状態にある、それらを達成しようとしましょう🙈
さて、非同期JSの小さな導入から始めましょう.
約束は最終的に価値を生み出す方法です.これは、getter関数の非同期カウンターとして考えることができます.その本質は次のように説明できる.
promise.then(function(value) {
  // Do something with the 'value'
});
JavaScriptはシングルスレッドであり、一度に1つのメインスレッドで1つのことが起こることができます.それで、あなたがネットワークまたはデータベースからデータをフェッチしたいならば、主な糸がブロックされて、どれくらいの時間が我々が知らないかについて完全になるだろうと思います.
したがって、この問題を解決するには、2つの主要な種類の非同期コードスタイルがあります.
  • オールドスタイルコールバック
  • 新しい約束スタイルコード
  • 我々はそれのそれぞれを探索します!
    let promise = new Promise(function(resolve, reject){
       // executor (the producing code, "singer") 
    });
    
    新しい約束に渡された関数はExecutorと呼ばれます.新しい約束が作成されると、実行者は自動的に実行されます.これは最終的に結果を生成するコードを生成します.
    引数の解決と拒否はJavaScript自体が提供するコールバックです.我々のコードは、実行者の中だけです.Executorが結果を取得すると、すぐにまたは遅れることがあります.
  • Resolution(Value)-ジョブが正常に終了した場合、結果値を返します.
  • **エラーが発生した場合、エラーはエラーオブジェクトです.
  • 約束する


    2つ以上の非同期操作をバックに実行したい場合は、前の演算結果が必要になるとチェインが来る!
    chooseProduct()
    .**then**(up => selectProduct(up))
    .**then**(cart=> addToCart(cart))
    .**then**(buy=> buyProduct(buy))
    .**catch**(failureCallback);
    
    約束連鎖を避けるため、クリーンなコードを書くには、async & waitを指定します.非同期コードを書くことと読みやすくするために、約束の上に構文上の砂糖として作用します!
    const readData = **async**() => {
     try{
         const response = **await **fetch(URL);
         console.log(response);
      }
     catch(err){
        console.log(err);
      }
    }
    
    JavaScriptではいくつかの静的な約束があります.
  • **Promise.all(iterable) **
  • **Promise.race(iterable) **
  • **Promise.reject(reason) **

  • **Promise.resolve(value) **

    Promise.all()


  • 約束.all ()メソッドは、入力として約束の繰り返し可能性をとり、入力約束の結果の配列に解決する単一の約束を返します.それはすぐに入力約束のどれかに拒絶します.
    p1 = Promise.resolve(50);
    p2 = 200
    p3 = new Promise(function(resolve, reject) {
       setTimeout(resolve, 100, 'geek');
    });
    
    Promise.all([p1, p2, p3]).then(function(values) {
        document.write(values);
    });
    

    Promise.race()


    約束.race ()静的メソッドは、反復可能なオブジェクトとして約束のリストを受け入れ、その約束から値または理由を満たす、約束または拒否する1つの約束があるとすぐに実行または拒否する新しい約束を返します.
    const p1 = new Promise((resolve, reject) => {
        setTimeout(() => {
            console.log('The first promise has resolved');
            resolve(10);
        }, 1 * 1000);
    
    });
    
    const p2 = new Promise((resolve, reject) => {
        setTimeout(() => {
            console.log('The second promise has resolved');
            resolve(20);
        }, 2 * 1000);
    });
    
    Promise.race([p1, p2])
        .then(value => console.log(`Resolved: ${value}`))
        .catch(reason => console.log(`Rejected: ${reason}`));
    
    **//OUTPUT
    **The first promise has resolved 
    Resolved: 10 
    The second promise has resolved
    
    次の例では2つの約束を作成します.つ目の約束は1秒で解決しますが、2番目は1秒で拒否します.最初の約束が第2の約束より速いので、返された約束は最初の約束から値に解決します.
    JavaScriptでは約束のインスタンスメソッドがいくつかあります.
  • **Promise.prototype.then() **
  • **Promise.prototype.catch() **
  • **Promise.prototype.finally() **

  • ついに、目的地に着いた.あなたがここにいるので、あなたはあなたの約束を果たしました.
    希望を楽しんで、何か新しいことを学んだ!バイ👋
  • 年のBhavy Kapadia(プログラマーアナリスト)