import { createSignal } from "https://deno.land/x/effection@3.0.0-beta.3/lib/mod.ts";
Create a new Signal
Signal should be used when you need to send messages to a stream from outside of an operation. The most common case of this is to connect a plain, synchronous JavaScript callback to an operation.
Examples
Example 1
Example 1
function* logClicks(button) {
let clicks = createSignal<MouseEvent>();
try {
button.addEventListener("click", clicks.send);
for (let click of yield* each(clicks)) {
console.log("click", click);
}
} finally {
button.removeEventListener("click", clicks.send);
}
}
Do not use a signal to send messages from within an operation as it could result in out-of-scope code being executed. In those cases, you should use a Channel.