Skip to content

ReadableStream.cancel never trigger #279

Description

@dinwwwh

ReadableStream.cancel should be triggered when the user cancels a response before it finishes.

Currently, only "aborted" is printted, while "cancelled" never prints when a response is canceled before completion.

"@hono/node-server": "^1.19.4",

import { serve } from "@hono/node-server";

serve({
    fetch: ({ signal }) => {
        signal?.addEventListener("abort", () => console.log("aborted"));

        return new Response(new ReadableStream({
            async pull(controller) {
                controller.enqueue(new TextEncoder().encode("Hello, World!"));
                await new Promise((resolve) => setTimeout(resolve, 1000));
            },
            async cancel() {
                console.log("cancelled");
            }
        }), {
            headers: {
                "content-type": "text/event-stream"
            }
        })
    },
    port: 3000,
});

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions