2017-03-29 33 views
0

私は、リモートデバイス(ジェネレータfn)を2秒ごとにポーリングする必要があるアプリケーションを構築しています。ジェネレータ(非同期)関数をインターバルベースで呼び出す方法

発電機ではなく、AdonisJSは、ボンネットの下にコ()を使用しているため

function * sendRequests() { 
    // multiple remote async requests are sent 
} 

var timer = setInterval(() => { 
    // yield sendRequests() 
}, 2000) 
+1

なぜジェネレータ機能ですか?せいぜい '非同期関数 'であってはなりませんか? 'co.wrap'(またはあなたが使用している非同期ランナーライブラリ)にそれをラップするのを忘れましたか? – Bergi

+0

わかりやすくするために質問を更新しますが、この関数はジェネレータです。非同期操作のための約束とコールバックの代わりにジェネレータを使用し、まだES7の非同期fnのために準備されていないAdonisJSプラットフォーム上で動作します。この場合、非同期アクションはリモートMODBUS/TCP要求です。 –

答えて

0

が得られないのsetIntervalを使用して、FN発電機を呼び出すための正しい方法は何、私はの@Bergiの提案を使用しました

function * sendRequests() { 
    // multiple remote async requests are sent 
} 

var timer = setInterval(() => { 
    co(function *() { 
    yield sendRequests() 
    }) 
}, 2000) 
関連する問題