【JavaScript】Promiseで使用するあれこれや仕組みを学ぶ。
【JavaScript】Promiseで使用するあれこれや仕組みを学ぶ。
コールバック関数と決められた書き方
前日の記事では、JavaScriptで非同期処理を行うときはコールバック関数が多いと引用しました。そしてJavaScriptのコールバック関数にはルールがあり、第一第一引数にはエラーの処理を行うオブジェクトを渡す事です。
そいで、promiseでは
//この行より上で定義したであろうpromiseオブジェクトgetPromiseを入れる。 let samplePromise = getPromise(); samplePromise.then(function(result){ // 取得成功時の処理 }).catch(function(error){ // 取得失敗時の処理 });
このようにpromiseのオブジェクトを準備してそれに対して失敗時、成功時の処理を用意する。 また、promiseオブジェクトで用意されたメソッドしか使えないため処理のパターン化ができる。
といってもパターン化ができるが実感できるほど色々書き方が思いつかないのでふーんそうなんだぐらいでおいておく
Promiseを使う
Promiseを使うときはコンストラクタ関数Promise(rubyでいう組み込みライブラリ的な、すでに準備されているやつ)を使いpromiseオブジェクト(インスタンス)を作成して利用します。
let promise = new Promise(function(resolve, reject) { // ここの無名関数が慣れないので辛い。。 // 非同期の処理 // 処理が終わったら、resolveまたはrejectを呼ぶ });
インスタンスメソッド
newで生成したpromiseオブジェクトは.thenとか.catchとかが使える。
JavaScript Promiseの本(v1) こちらを参考に それぞれのメソッドには失敗した時や成功したときなど、決められた処理を引数に渡す。
Promiseを学んでいて気づいたこと
そもそも関数宣言、即時関数、アロー関数などの認識が甘いため自分の頭に読み込みにくくなっていることに気づく。
明日は初心に戻って、書籍『初めてのJavaScript』を読み込むことにする。
ただ断然昨日よりは割合あぁーやってることは割と単純そうだなと思えるようになってきたこともあるのでちょっとずつ学ぶ。