LoginSignup
3
3

More than 5 years have passed since last update.

Promiseさん

Last updated at Posted at 2016-08-08

ES6でPromiseを使ったコードをさくっと書けなかったので使い方を確認しとく。

// 後処理はrequestが終わった後に呼び出したいが、
// reqeustが非同期なので処理順序が前後する

var request = require('request');
url = 'http://jsonplaceholder.typicode.com/posts/1';

request(url, function (error, response, body) {
  if (!error && response.statusCode == 200) {
    console.log(JSON.parse(body).id);
  } else {
    console.error('error: '+ error);
  }
})

console.log('後処理')
// Promiseをつかって順序良く処理する

var request = require('request');
url = 'http://jsonplaceholder.typicode.com/posts/1';

new Promise((resolve, reject) => {
  request(url, function (error, response, body) {
    if (!error && response.statusCode == 200) {
      console.log(JSON.parse(body).id);
      resolve() // 200 ok なら次へ
    } else {
      console.error('error: '+ error);
      reject() // エラーだったら終わる
    }
  })
})
.then(() => {
  console.log('後処理')
})

Promiseさん!

(Promiseサイコーって人ならMonadとか似たようなものの気がするし、すぐ好きになりそうな気がするけどどうなんだろう)

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3