Promise基礎
仕事でNode.jsを使うことになって非同期処理でPromiseやasync/awaitをよく使うので今回はPromiseについてまとめました。
async/awaitについては別の機会にまとめようと思います。
Promiseの特徴は4つあります。
- Promiseオブジェクトは3つの状態を持っている(Pending, fulfilled, rejected)
- 状態は変化する(Pending -> fulfilled or rejected)
- Promiseの状態によってその後の処理が変化する
- then()で処理をチェーンできる(callback地獄にならない)
Promiseの使い方
return new Promise((resolve, reject) => {do something})
でPromiseオブジェクトを作ってreturnさせる関数を用意する(作ったときは状態はPending)- その関数を呼び出して状態変化させたPromiseオブジェクトを次の処理に渡す
- 次の処理ではPromiseオブジェクトの状態によって処理が分岐する(以下のソースでは
console.log(result)
orconsole.log(error)
)
※Promiseの使い方補足
Promiseオブジェクトはresolve
の処理が行われるとfulfilled
になる
Promiseオブジェクトはreject
の処理が行われるとrejected
になる
以下のソースのpmFnc(true)
が呼ばれるとPromiseオブジェクトはresolve
を実行してfulfilled
になる
Promise(pmFnc(true)
)の結果はコールバック関数の引数(.then(result => ...
)で受け取れる(resultのこと)
function pmFnc(result) { return new Promise ((resolve, reject) => { if(result) resolve('success!') reject('failure...') }) } pmFnc(true) .then(result => { console.log(result) }) .catch( error => { console.log(error) }) console.log('1st comment')
結果は以下
1st comment success!
簡単にですがPromiseについてまとめました!
次はasync/awaitについてまとめたいと思います。
読んでいただいてありがとうございました!!