WIP

promiseの理解

created at 2017.02.16
updated at 9ヶ月前 ago
vsanna / public JavaScript

Promiseはjsによくある非同期的な( = 並行してなされる)処理を同期的に( = 順番に、続けて)処理したい場合に用いる。

Promiseが登場した歴史的な背景は別いしゅーにした

// 基本
// 1. promiseの作り方
// 2. promiseの使い方

// 1. promiseの作り方
// new Promiseは非同期処理として扱いたい処理をまとめたcallback関数を受け取る
// callbackはPromiseから第一引数としてresolve, 第二引数としてrejectを渡される(後述)
let callback = (resolve, reject) => {
  // 非同期処理
  setTimeout(() => { 
    console.log('2 sec たちました')
    resolve({ hoge: 'geho' }) 
  }, 2000)
}
let promise = new Promise(callback)

// 2. promiseの使い方
// promise内の非同期処理が終了したら、「続けて」何をするかについてthenで記述する
promise.then(
  (result) => { console.log('good', result)}, // 第一引数にresolve時、つまり成功時の処理を書く
  (err) => { console.log(err)}, // 第一引数にreject時、つまり失敗時の処理を書く
)
// 応用
// 1. thenのchain
// 2. catch
// 3. all, race
// 4. Promise.resolve

shareシェアする

forumコメント

まだコメントはありません!
ログインしてコメントを残す
{{comment.user.name}} on {{commentCreatedAt()}}

content_copy前後のイシュー

{{message}}