1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-12-23 15:49:44 -05:00

docs(std): add async and signal readme (#7683)

Resolves #7608
This commit is contained in:
Andrew Mitchell 2020-09-25 19:15:18 -04:00 committed by GitHub
parent 0ffaaba164
commit 98c9798cb7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 123 additions and 0 deletions

85
std/async/README.md Normal file
View file

@ -0,0 +1,85 @@
# async
async is a module to provide help with aysncronous tasks.
# usage
The following functions and class are exposed in `mod.ts`
## deferred
Creates a Promise with the `reject` and `resolve` functions.
```typescript
import { deferred } from "https://deno.land.std/async/mod.ts";
const p = deferred<number>();
// ...
p.resolve(42);
```
## delay
Resolve a Promise after a given amount of milliseconds
```typescript
import { delay } from "https://deno.land.std/async/mod.ts";
// ...
const delayedPromise = delay(100);
const result = await delayedPromise;
// ...
```
## MuxAsyncIterator
The MuxAsyncIterator class multiplexes multiple async iterators into a single
stream.
The class makes an assumption that the final result (the value returned and not
yielded from the iterator) does not matter. If there is any result, it is
discarded.
```typescript
import { MuxAsyncIterator } from "https://deno.land.std/async/mod.ts";
async function* gen123(): AsyncIterableIterator<number> {
yield 1;
yield 2;
yield 3;
}
async function* gen456(): AsyncIterableIterator<number> {
yield 4;
yield 5;
yield 6;
}
const mux = new MuxAsyncIterator<number>();
mux.add(gen123());
mux.add(gen456());
for await (const value of mux) {
// ...
}
// ..
```
## pooledMap
Transform values from an (async) iterable into another async iterable. The
transforms are done concurrently, with a max concurrency defined by the
poolLimit.
```typescript
import { pooledMap } from "https://deno.land.std/async/mod.ts";
const results = pooledMap(
2,
[1, 2, 3],
(i) => new Promise((r) => setTimeout(() => r(i), 1000)),
);
for await (const value of results) {
// ...
}
```

38
std/signal/README.md Normal file
View file

@ -0,0 +1,38 @@
# signal
signal is a module used to capture and monitor OS signals
# usage
The following functions are exposed in `mod.ts`
## signal
Generates an AsyncIterable which can be awaited on for one or more signals.
`dispose()` can be called when you are finished waiting on the events.
```typescript
import { signal } from "https://deno.land.std/signal/mod.ts";
const sig = signal(Deno.Signal.SIGUSR1, Deno.Signal.SIGINT);
setTimeout(() => {}, 5000); // Prevents exiting immediately
for await (const _ of sig) {
// ..
}
// At some other point in your code when finished listening:
sig.dispose();
```
## onSignal
Registers a callback function to be called on triggering of a signal event.
```typescript
import { onSignal } from "https://deno.land.std/signal/mod.ts";
const handle = onSignal(Deno.Signal.SIGINT, () => {
// ...
handle.dispose(); // de-register from receiving further events
});
```