0
コンストラクタが非同期呼び出しを実行して戻すオブジェクトをインスタンス化する必要があります。目的は、非同期のカレー化を行うことです。私はcoを使用しています。以下の例は失敗します。私は間違って何をしていますか?非同期ルーチンを使用する新しいオブジェクト
var co = require('co')
function asyncFunction() {
return new Promise(function (resolve) {
resolve()
})
}
function MyObject() {
co(function *() {
yield asyncFunction()
}).then(()=> {
this.runSomething = function() {
return 'something'
}
})
}
new MyObject().runSomething()
// TypeError: (intermediate value).runSomething is not a function
'co'はあなたが解決しない' Promise'を返します。 – jonrsharpe
コールバックなしで純粋なドット表記法シーケンス(lke 'new MyObject()。runSomething()')が表示されているときは同期しています。メインコードにコールバックが必要です。 – trincot
しないでください! '新しいMyObject()'を完全に同期させて、MyObject()のメソッドにasyncをリダイレクトします。 –