coを使って非同期処理を綺麗に書く

coを使うとJavaScriptの非同期処理を同期的に書くことができてかなり読みやすいコードが書けるようになります。

例えば、非同期にファイルの中身を取得するプログラムでもかなりすっきりとした感じになります。

'use strict';
let co = require('co');
let fs = require('fs');

let readFile = (path) => {
	return new Promise((resolve,reject) => {
		fs.readFile(path,(err,data) => {
			if (err) return reject(err);
			let jsonData = JSON.parse(data);
			return resolve(jsonData);
		})
	})
};


co(function *(){
	//success
	let read = readFile('./data.json');
	let data = yield read;
	//dataにdata.jsonの中身が入っている
	console.log(data)

}).catch((err) => {
	//error
	console.log(err);

});

Related Contents

Pickup Contents