2016-09-29 9 views
1

私は私のプロジェクトでは、このようなコードを持っている:ブラウザオブジェクトがメソッドthenを持っているので、期待したようJavascriptでwrapped generator関数からthenableを返す方法はありますか?

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

を、これは動作しません。ラップされたジェネレータ関数からthenableオブジェクトを返す方法があるのだろうかと思います。 (またはそのようなケースをサポートするラッピングジェネレータの場合はcoではなく、おそらく他のライブラリ)。

答えて

0

coは、ジェネレータを受け取り、Promiseの返す関数を返しますが、呼び出しません。

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

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

返信いただきありがとうございます!私の例ではジェネレータ関数はブラウザオブジェクトを返します。ブラウザオブジェクトはthenableであり、 'browser.then'を呼びたくない限り、それを破ります。 –

関連する問題