(関数)
https://meetup-jp.toast.com/1236
co関数にジェネレータを引数として渡すと、ジェネレータを最後まで実行し、実行結果としてプロミスを返却してくれる。
またcoはプロミスだけでなく、関数、配列、オブジェクト、ジェネレータなどをyieldすることができる。
co(function* () {
const id = yield getId('010-1234-5678');
const email = yield getEmail(id);
const name = yield getName(email);
return yield order(name, 'coffee');
}).then(result => {
console.log(result);
});
wrap関数を使うと、ジェネレータ関数をプロミスを返却する関数に変換できる。
const orderCoffee = co.wrap(function *() {
const id = yield getId('010-1234-5678');
const email = yield getEmail(id);
const name = yield getName(email);
return yield order(name, 'coffee');
});
orderCoffee.then(result => {
console.log(result);
});