JavaScriptは初心者の約束


この記事を最大限に活用するには、同期と非同期のプログラミングについての基礎知識と、可能ならばJavaScriptのコールバックについて知っておいてください.
しかし、私はそれの少なくとも85 %を理解できるように、これらのトピックからほとんどのものを遠ざけようとします.

約束を理解する


友人があなたに財政援助のために来ると仮定してください、そして、あなたは彼がATMからそれを取り出した後に彼に若干の現金を与えると約束します.
あなたはATMに行き、あなたのカードを強打し、あなたのアカウントが何らかの理由で凍結されていることを知り、あなたのお金を取り出すことができません.
——そして、あなたの友人に戻って、あなたの口座が凍っているので、あなたに彼に金を与えることができないと彼に話してください.したがって、あなたの約束を破る.
//You have made promise to your friend and you leave for bank
if (everythingGoesWell) {
return theMoney //Promise is fulfilled
}
else {
return "Account_Frozen" //Promise failed
}
約束は、非同期操作を処理するためにJavaScriptで使用されます.それらは実際の出力をリンクする特別なオブジェクトです(上記の例では、それは必要なお金です)、そして、我々が出力を得ないかもしれない理由(口座凍結).

約束の状態


JavaScriptの約束は解決または保留です.約束のコンストラクターを使用して約束を作成できます.
var thePromise = new Promise(executor())
Executor関数はPromiseコンストラクターのコールバックです.引数としてresolverejectの2つのコールバックをとる.
  • コールバックは、約束が実際に満たされるとき使用されます.それは引数として出力値をとります.
  • 約束が満たされることができなかったとき、
  • コールバックは使われます.その理由は当然だ.
  • 私たちが約束を作成するとき、それはresolve州で初期化します.一旦、実行者が実行すると、rejectまたはpendingのいずれかであるsettledに変更されます.
  • 実装:コード断片


    ここで我々の問題の約束を作成しましょう.
    var thePromise = new Promise(function(resolve,reject){
    // Try to take out money from atm
    withdraw(function(error,money) {
    // If withdrawal failed, tell why
    if (error) reject (error)
    // else return the money
    else resolve (money)
    })
    })
    
    あなたがコールバックとコールバックの地獄での経験を持っていない場合は約束多忙なもののビットすることができます.しかし、一度この概念を把握し、戻って行くことはありません!

    解決され拒絶された条項

  • 機能は、約束が拒否されたときに実行される約束に添付されます.これは、引数としてthenメソッドを介して送信されるエラーがかかります.
  • 機能は、約束が解決されるとき、実行する見込みに付けられます.それは引数としてcatchメソッドを介して送信された値を送信します.
  • catch節があります.約束が解決したり拒絶したりしても実行される.引数は取りません.
  • var thePromise = new Promise(function(resolve,reject){
    // Try to take out money from atm
    withdraw(function(error,money) {
    // If withdrawal failed, tell why
    if (error) reject (error)
    // else return the money
    else resolve (money)
    })
    })
    
    thePromise.then(function(money) {
    // This function is executed when the above promise resolves and returns an //amount of money
    })
    
    thePromise.catch(function(error) {
    // This function is executed when the above promise rejects due to an error
    })
    
    thePromise.finally(function() {
    // This function is executed after the promise is resolved or rejected.
    })
    
    ありがとう!フィードバック、提案と訂正は非常に有り難いです.コメント%で書きます-
    Webdevの初心者は、Web開発のための基礎を構築する方法を見てここに私の記事を通過することができます.