約束&コルーチンのために、私が使用したブルーバードNPMパッケージを持って解決されたときコルーチンの動作になります。どのような約束が複数回とコルーチンはNodeJsの次の歩留まり
約束が複数回解決された場合、以下のコードの動作を理解するのに助けてください。
質問:約束は複数回解決したときにコルーチンはどう意志
?
は、第収率は、第一の複数の収率によって影響されるだろう。
const bluebird = require( "bluebird");
function func1() { return new bluebird((resolve, reject) => { let c = 0; let iterval = SetInterval(() => { c++; let cc = c; console.log(`c=${c}`); if(cc === 20) { clearInterval(interval); } resolve(true); }, 1000); }); } let run1 = bluebird.coroutine(function*() { try { yield func1(); yield func1(); yield func1(); yield func1(); } catch (e) { console.dir(e); } });
感謝。約束が最初に解決された後、コルーチンは実行のために次の行に移動し、解決は影響も記憶もしません。 – dearvivekkumar
短い答え、はい。コルーチンは、約束の参照を保持しておらず、各約束のthenメソッドを返すだけです。 promiseオブジェクトやその解決/拒否機能の永続的なリストは、何かのリストを保持する以上のものを保持するべきではありません。別の名前によるメモリリークです。 – traktor53