files/en-us/web/api/readablestreambyobreader/cancel/index.md
{{APIRef("Streams")}}{{AvailableInWorkers}}
The cancel() method of the {{domxref("ReadableStreamBYOBReader")}} interface returns a {{jsxref("Promise")}} that resolves when the stream is canceled.
Calling this method signals a loss of interest in the stream by a consumer.
[!NOTE] If the reader is active, the
cancel()method behaves the same as that for the associated stream ({{domxref("ReadableStream.cancel()")}}).
cancel()
cancel(reason)
reason {{optional_inline}}
A {{jsxref("Promise")}}, which fulfills with the value given in the reason parameter.
ReadableStreamBYOBReader, or the stream has no owner.This example code calls the cancel() method when a button is pressed, passing the string "user choice" as a reason.
The promise resolves when cancellation completes.
button.addEventListener("click", () => {
reader.cancel("user choice").then(() => console.log(`cancel complete`));
});
Note that this code can be seen running in the Using readable byte streams example code (press the Cancel stream button).
{{Specifications}}
{{Compat}}