2.0.0-preview.3-ea472e7 • Published 5 years ago

@effection/channel v2.0.0-preview.3-ea472e7

Weekly downloads
1,358
License
MIT
Repository
github
Last release
5 years ago

@effection/channel

A multi producer, multi consumer unbounded channel for Effection. Channels are useful for communicating between different parts of a system, for building pubsub buses, or a whole lot of other synchronization needs.

Sending to a channel is synchronous and does not require the sender to be running in an effection context. However, reading from a channel can only be done through operations.

Because of the synchronous nature of sends, channels are unbounded in size, which means that they cannot handle backpressure. As such, channels should be used more as a synchronization mechanism, rather than a high-throughput system.

Usage

A basic example:

import { createChannel } from '@effection/channel';
import { main } from '@effection/node';
import { sleep } from 'effection';

main(function*() {
  let channel = createChannel();

  spawn(function*() {
    while(true) {
      yield sleep(1000);
      channel.send({ message: "ping" });
    }
  });

  let subscription = yield channel.subscribe();

  while(true) {
    let { value } = yield subscription.next();
    console.log("value:", value);
  }
});
2.0.6

2 years ago

2.0.5

3 years ago

2.0.4

3 years ago

2.0.3

4 years ago

2.0.2

4 years ago

2.0.1

4 years ago

2.0.0

4 years ago

2.0.0-beta.21

4 years ago

2.0.0-beta.20

4 years ago

2.0.0-beta.19

4 years ago

2.0.0-beta.18

4 years ago

2.0.0-beta.17

4 years ago

2.0.0-beta.16

4 years ago

2.0.0-beta.15

4 years ago

2.0.0-beta.14

4 years ago

2.0.0-beta.13

4 years ago

2.0.0-beta.11

4 years ago

2.0.0-beta.12

4 years ago

2.0.0-beta.10

4 years ago

2.0.0-beta.9

5 years ago

2.0.0-beta.8

5 years ago

2.0.0-beta.7

5 years ago

2.0.0-beta.6

5 years ago

2.0.0-beta.5

5 years ago

2.0.0-beta.4

5 years ago

2.0.0-beta.3

5 years ago

2.0.0-beta.2

5 years ago

2.0.0-beta.1

5 years ago

2.0.0-beta.0

5 years ago

2.0.0-preview.14

5 years ago

2.0.0-preview.15

5 years ago

2.0.0-preview.12

5 years ago

2.0.0-preview.13

5 years ago

2.0.0-preview.10

5 years ago

2.0.0-preview.11

5 years ago

2.0.0-preview.9

5 years ago

2.0.0-preview.8

5 years ago

2.0.0-preview.7

5 years ago

2.0.0-preview.6

5 years ago

2.0.0-preview.5

5 years ago

2.0.0-preview.4

5 years ago

2.0.0-preview.3

5 years ago

1.0.0

5 years ago

2.0.0-preview.2

5 years ago

2.0.0-preview.1

5 years ago

2.0.0-preview.0

5 years ago

0.6.8

5 years ago

0.6.7-2c8f550

5 years ago

0.6.7-38df1ff

5 years ago

0.6.7-f851981

5 years ago

0.6.7-8b55b33

5 years ago

0.6.7-f890ffb

5 years ago

0.6.7-885edf6

5 years ago

0.6.7-eb6cc78

5 years ago

0.6.7

5 years ago

0.6.6

5 years ago

0.6.5-fb18d51

5 years ago

0.6.5-25b68eb

5 years ago

0.6.5-6a41f0b

5 years ago

0.6.5-c482196

6 years ago

0.6.4-752ac10

6 years ago

0.6.4-b323b6b

6 years ago

0.6.4-048c4cf

6 years ago

0.6.5

6 years ago

0.6.4-16c3038

6 years ago

0.6.4-3af3547

6 years ago

0.6.4-5d3608d

6 years ago

0.6.4-731035e

6 years ago

0.6.4-0ca968d

6 years ago

0.6.4-ad356c1

6 years ago

0.6.4-56802c5

6 years ago

0.6.4

6 years ago

0.6.3

6 years ago

0.6.2-a7f9396

6 years ago

0.6.2-bb2be29

6 years ago

0.6.2-2a008aa

6 years ago

0.6.2

6 years ago

0.6.1

6 years ago

0.6.1-32b46b8

6 years ago

0.6.1-611c90a

6 years ago

0.6.1-b1952e1

6 years ago

0.6.1-3cde29a

6 years ago

0.6.1-388321e

6 years ago