이 같은 장기 실행 과정에서 약속 체인에 약속을 추가하는 경우 :체인에서 GC'd가 더 완료된 약속이 완료 되었습니까?
let q = Promise.resolve();
let i = setInterval(() => {
q = q.then(() => {
return new Promise((resolve) => {
setTimeout(() => {
console.log("one resolved");
resolve();
}, 1)
});
});
}, 2);
체인에 완성 된 약속이 쓰레기 수집받을 것인가, 아니면 메모리를 누출?
장기 실행 응용 프로그램에서 체인 var (q)를 q = (q + nextPromise)
에 다시 할당하여 체인에 추가하는 것이 안전합니까? 약속 기반 큐를 만드는 더 좋은 방법이 있습니까? 그것은이 GC'd 될 것 같아이 예에서
예제에는 긴 체인이 없습니다. 모든 콜백이 동일한'q' 약속에 추가됩니다 – Bergi
긴 체인을 만들고 싶다면'q = q.then (...)'을 수행해야합니다. 그러면 질문이 더 이해가됩니다. – jfriend00
@Bergi 덕분에 이것이 게시 할 의도였습니다. 업데이트 된 코드 – zino