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とか似たようなものの気がするし、すぐ好きになりそうな気がするけどどうなんだろう)