如何在Javascript中从包装的生成器函数返回?

时间:2016-09-29 20:58:03

标签: javascript asynchronous promise co

我的项目中有这样的代码:

co(function *asyncFn() {
    let browser = yield someAsyncOperation();
    return browser;
}).then(browser => browser.exit());

正如预期的那样,由于浏览器对象具有方法then,因此无法正常工作。我想知道是否有任何方法可以从包装的生成器函数返回thenable对象。 (或者可能是其他一些库而不是co用于包装支持此类情况的生成器)。

1 个答案:

答案 0 :(得分:0)

co接受生成器并返回Promise返回函数,它不会调用它。

const fn = co(function* asyncFn() { ... })

fn().then(() => browser.exit());