function a(){
return new Promise(resolve => {
setTimeout(() => {
console.log(1)
return 2
}, 1000)
})
}
function rec(){
a().then(e => rec())
}
rec()
ずっと繰り返されそうにと思ってたけど Promise 内で resolve を使わず return してた
こういう resolve も reject もせず放置された Promise ってちゃんと回収されるのかなんか不安があったけどちゃんと回収されてるみたいで安心
ところで return 2 を resolve(2) に直すと毎秒 1 がで続ける
2 には特に意味はない
今回のだと絶対に resolve も reject もされないってわかるからであって fetch したときにサーバが end 忘れててレスポンスが永遠に来ないとかだとダメだと思う
そういうことはあまりなさそうだけど WebSocket のライブラリで socket に対してレスポンスを返せるもので返し忘れはわりとありそうな気はする