https://github.com/ciriousjoker/dart-completer
A Typescript port of Dart's Completer.
https://github.com/ciriousjoker/dart-completer
async await completer dart promise typescript
Last synced: 9 months ago
JSON representation
A Typescript port of Dart's Completer.
- Host: GitHub
- URL: https://github.com/ciriousjoker/dart-completer
- Owner: ciriousjoker
- License: mit
- Created: 2022-03-05T14:40:19.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2023-07-19T10:56:43.000Z (almost 3 years ago)
- Last Synced: 2025-09-06T17:57:52.416Z (9 months ago)
- Topics: async, await, completer, dart, promise, typescript
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/dart-completer
- Size: 438 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Dart Completer
[](https://github.com/ciriousjoker/dart-completer/blob/main/LICENSE)

A Typescript port of Dart's Completer.
Use it like a `Promise` that you can complete from the outside.
Note that you can only complete a `Completer` once, either by calling `.complete()` or `.completeError()`.
Subsequent calls to `.complete()` or `.completeError()` are ignored.
### Usage
#### Without value
```ts
const completer = new Completer();
setTimeout(() => {
completer.complete();
}, 1000);
await completer.promise; // => Completes after 1 second.
await completer; // => Alternative, identical syntax
```
#### With value
```ts
const completer = new Completer();
setTimeout(() => {
completer.complete("done.");
}, 1000);
const a = await completer.promise; // => "done."
const b = await completer; // => "done."
```