ReadableStream → Blobに変換にnew Response().blob()を使うことはできるけど無限のReadableStreamだとawaitが終了しない
以下のawait response.blob()が終わらない。
code:js
const readable = new ReadableStream({
async pull(ctrl) {
await new Promise((resolve) => setTimeout(resolve, 500));
console.log('enqueue');
// ctrl.close();
}
});
(async () => {
const response = new Response(readable);
console.log(await response.blob());
// ReadableStreamが無限だとawait blobは返ってこない
})();
上記の// ctrl.close()のコメントアウトを外すと有限のReadableStreamになりawaitは終了してBlobに変換できることを確認できる。