#[repr(transparent)]pub struct Promise { /* private fields */ }
Expand description
The Promise
object represents the eventual completion (or failure) of
an asynchronous operation, and its resulting value.
Implementations
Creates a new Promise
with the provided executor cb
The cb
is a function that is passed with the arguments resolve
and
reject
. The cb
function is executed immediately by the Promise
implementation, passing resolve
and reject
functions (the executor
is called before the Promise
constructor even returns the created
object). The resolve
and reject
functions, when called, resolve or
reject the promise, respectively. The executor normally initiates
some asynchronous work, and then, once that completes, either calls
the resolve
function to resolve the promise or else rejects it if an
error occurred.
If an error is thrown in the executor function, the promise is rejected. The return value of the executor is ignored.
The Promise.all(iterable)
method returns a single Promise
that
resolves when all of the promises in the iterable argument have resolved
or when the iterable argument contains no promises. It rejects with the
reason of the first promise that rejects.
The Promise.race(iterable)
method returns a promise that resolves or
rejects as soon as one of the promises in the iterable resolves or
rejects, with the value or reason from that promise.
The Promise.reject(reason)
method returns a Promise
object that is
rejected with the given reason.
The Promise.resolve(value)
method returns a Promise
object that is
resolved with the given value. If the value is a promise, that promise
is returned; if the value is a thenable (i.e. has a “then” method), the
returned promise will “follow” that thenable, adopting its eventual
state; otherwise the returned promise will be fulfilled with the value.
The catch()
method returns a Promise
and deals with rejected cases
only. It behaves the same as calling Promise.prototype.then(undefined, onRejected)
(in fact, calling obj.catch(onRejected)
internally calls
obj.then(undefined, onRejected)
).
The finally()
method returns a Promise
. When the promise is settled,
whether fulfilled or rejected, the specified callback function is
executed. This provides a way for code that must be executed once the
Promise
has been dealt with to be run whether the promise was
fulfilled successfully or rejected.
This lets you avoid duplicating code in both the promise’s then()
and
catch()
handlers.
Methods from Deref<Target = Object>
The constructor property returns a reference to the Object
constructor
function that created the instance object.
The hasOwnProperty()
method returns a boolean indicating whether the
object has the specified property as its own property (as opposed to
inheriting it).
The isPrototypeOf()
method checks if an object exists in another
object’s prototype chain.
The propertyIsEnumerable()
method returns a Boolean indicating
whether the specified property is enumerable.
The toLocaleString()
method returns a string representing the object.
This method is meant to be overridden by derived objects for
locale-specific purposes.
The toString()
method returns a string representing the object.
The valueOf()
method returns the primitive value of the
specified object.
Methods from Deref<Target = JsValue>
Returns the f64
value of this JS value if it’s an instance of a
number.
If this JS value is not an instance of a number then this returns
None
.
If this JS value is a string value, this function copies the JS string
value into wasm linear memory, encoded as UTF-8, and returns it as a
Rust String
.
To avoid the copying and re-encoding, consider the
JsString::try_from()
function from js-sys
instead.
If this JS value is not an instance of a string or if it’s not valid
utf-8 then this returns None
.
UTF-16 vs UTF-8
JavaScript strings in general are encoded as UTF-16, but Rust strings
are encoded as UTF-8. This can cause the Rust string to look a bit
different than the JS string sometimes. For more details see the
documentation about the str
type which contains a few
caveats about the encodings.
Returns the bool
value of this JS value if it’s an instance of a
boolean.
If this JS value is not an instance of a boolean then this returns
None
.
Tests whether this JS value is undefined
Tests whether the type of this JS value is function
.
Applies the unary typeof
JS operator on a JsValue
.
Applies the binary in
JS operator on the two JsValue
s.
Compare two JsValue
s for equality, using the ==
operator in JS.
Applies the unary ~
JS operator on a JsValue
.
Applies the binary >>>
JS operator on the two JsValue
s.
Applies the binary /
JS operator on two JsValue
s, catching and returning any RangeError
thrown.
Applies the binary **
JS operator on the two JsValue
s.
Applies the binary <
JS operator on the two JsValue
s.
Applies the binary <=
JS operator on the two JsValue
s.
Applies the binary >=
JS operator on the two JsValue
s.
Applies the binary >
JS operator on the two JsValue
s.
Applies the unary +
JS operator on a JsValue
. Can throw.
Trait Implementations
Performs a dynamic instanceof
check to see whether the JsValue
provided is an instance of this type. Read more
Performs a zero-cost unchecked conversion from a JsValue
into an
instance of Self
Read more
Performs a zero-cost unchecked conversion from a &JsValue
into an
instance of &Self
. Read more
Test whether this JS value has a type T
. Read more
Performs a dynamic cast (checked at runtime) of this value into the
target type T
. Read more
Performs a dynamic cast (checked at runtime) of this value into the
target type T
. Read more
Performs a zero-cost unchecked cast into the specified type. Read more
Performs a zero-cost unchecked cast into a reference to the specified type. Read more
Test whether this JS value is an instance of the type T
. Read more
Performs a dynamic check to see whether the JsValue
provided
is a value of this type. Read more
type Abi = <JsValue as RefFromWasmAbi>::Abi
type Abi = <JsValue as RefFromWasmAbi>::Abi
The wasm ABI type references to Self
are recovered from.
type Anchor = ManuallyDrop<Promise>
type Anchor = ManuallyDrop<Promise>
The type that holds the reference to Self
for the duration of the
invocation of the function that has an &Self
parameter. This is
required to ensure that the lifetimes don’t persist beyond one function
call, and so that they remain anonymous. Read more
Recover a Self::Anchor
from Self::Abi
. Read more
Auto Trait Implementations
impl RefUnwindSafe for Promise
impl UnwindSafe for Promise
Blanket Implementations
Mutably borrows from an owned value. Read more
type Abi = <T as IntoWasmAbi>::Abi
type Abi = <T as IntoWasmAbi>::Abi
Same as IntoWasmAbi::Abi
Same as IntoWasmAbi::into_abi
, except that it may throw and never
return in the case of Err
. Read more