libwasm.promise

An implementation of promises.

Members

Classes

Promise
class Promise(T, E : Throwable = Exception)

A promise for a value T or error E.

Functions

all
PromiseValueTransform!(P, x => [x]) all(P[] promises)

Wait for all promises to be resolved, or for any to be rejected.

all
Promise!(AllResult!Promises.ResultType) all(Promises promises)

Heterogeneous variant, which resolves to a tuple. void promises' values are omitted from the result tuple. If all promises are void, then so is the result.

reject
Promise!(T, E) reject(E reason)

Returns a new Promise which is rejected with the given reason.

require
Promise!(T, E) require(Promise!(T, E) p, Promise!(T, E) lp)
Undocumented in source. Be warned that the author may not have intended to support it.
resolve
Promise!void resolve()

Returns a new Promise!void which is resolved.

resolve
Promise!T resolve(T value)

Returns a new Promise which is resolved with the given value.

Templates

PromiseError
template PromiseError(P)

Get the error type of the promise P, i.e. its E parameter.

PromiseValue
template PromiseValue(P)

Get the value type of the promise P, i.e. its T parameter.

PromiseValueTransform
template PromiseValueTransform(P, alias transform)

Construct a new Promise type based on P, if the given transformation was applied on the value type. If P is a void Promise, then the returned promise will also be void.

isPromise
template isPromise(P)

Return true if P is a Promise instantiation.

Meta

License

This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

Authors

Vladimir Panteleev <ae@cy.md>