co関数/wrap関数(node.js専用関数)

(関数)
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);
});
inserted by FC2 system