pub struct Promise<T = JsValue> { /* private fields */ }Expand description
The Promise object represents the eventual completion (or failure) of
an asynchronous operation, and its resulting value.
Implementations§
Source§impl Promise
impl Promise
pub fn new_typed<T: Promising + JsGeneric>(
cb: &mut dyn FnMut(Function<fn(T) -> Undefined>, Function<fn(JsValue) -> Undefined>),
) -> Promise<<T as Promising>::Resolution>where
dyn FnMut(Function<fn(T) -> Undefined>, Function<fn(JsValue) -> Undefined>): ErasableGenericBorrowMut<dyn FnMut(Function<fn(JsValue) -> Undefined>, Function<fn(JsValue) -> Undefined>)>,
for<'__wry_bindgen> &'__wry_bindgen mut dyn FnMut(Function<fn(T) -> Undefined>, Function<fn(JsValue) -> Undefined>): EncodeTypeDef + BinaryEncode,
Promise<<T as Promising>::Resolution>: ErasableGenericOwn<Promise<<JsValue as Promising>::Resolution>> + EncodeTypeDef + BatchableResult,
Source§impl Promise
impl Promise
pub fn all_iterable<I>(
obj: &I,
) -> Promise<Array<<I::Item as Promising>::Resolution>>where
I::Item: Promising,
I: ErasableGenericBorrow<JsValue> + EncodeTypeDef + Iterable,
for<'__wry_bindgen> &'__wry_bindgen I: BinaryEncode,
Promise<Array<<I::Item as Promising>::Resolution>>: ErasableGenericOwn<Promise<Array<<JsValue as Promising>::Resolution>>> + EncodeTypeDef + BatchableResult,
Source§impl Promise
impl Promise
pub fn all_settled_iterable<I>(
obj: &I,
) -> Promise<Array<PromiseState<<I::Item as Promising>::Resolution>>>where
I::Item: Promising,
I: ErasableGenericBorrow<JsValue> + EncodeTypeDef + Iterable,
for<'__wry_bindgen> &'__wry_bindgen I: BinaryEncode,
Promise<Array<PromiseState<<I::Item as Promising>::Resolution>>>: ErasableGenericOwn<Promise<Array<PromiseState<<JsValue as Promising>::Resolution>>>> + EncodeTypeDef + BatchableResult,
Source§impl Promise
impl Promise
pub fn any_iterable<I>(obj: &I) -> Promise<<I::Item as Promising>::Resolution>where
I::Item: Promising,
I: ErasableGenericBorrow<JsValue> + EncodeTypeDef + Iterable,
for<'__wry_bindgen> &'__wry_bindgen I: BinaryEncode,
Promise<<I::Item as Promising>::Resolution>: ErasableGenericOwn<Promise<<JsValue as Promising>::Resolution>> + EncodeTypeDef + BatchableResult,
Source§impl Promise
impl Promise
pub fn race_iterable<I>(obj: &I) -> Promise<<I::Item as Promising>::Resolution>where
I::Item: Promising,
I: ErasableGenericBorrow<JsValue> + EncodeTypeDef + Iterable,
for<'__wry_bindgen> &'__wry_bindgen I: BinaryEncode,
Promise<<I::Item as Promising>::Resolution>: ErasableGenericOwn<Promise<<JsValue as Promising>::Resolution>> + EncodeTypeDef + BatchableResult,
Source§impl Promise
impl Promise
pub fn resolve<U>(obj: &U) -> Promise<U::Resolution>where
U: ErasableGenericBorrow<JsValue> + EncodeTypeDef + Promising,
for<'__wry_bindgen> &'__wry_bindgen U: BinaryEncode,
Promise<U::Resolution>: ErasableGenericOwn<Promise<JsValue>> + EncodeTypeDef + BatchableResult,
Source§impl<T> Promise<T>
impl<T> Promise<T>
pub fn catch_map<'a, R: Promising>(
&self,
cb: &ScopedClosure<'a, dyn FnMut(T) -> Result<R, JsError>>,
) -> Promise<R::Resolution>where
ScopedClosure<'a, dyn FnMut(T) -> Result<R, JsError>>: ErasableGenericBorrow<ScopedClosure<'static, dyn FnMut(JsValue) -> Result<JsValue, JsError>>>,
Promise<R::Resolution>: ErasableGenericOwn<Promise<JsValue>> + EncodeTypeDef + BatchableResult,
Source§impl<T> Promise<T>
impl<T> Promise<T>
pub fn then<'a>(&self, cb: &ScopedClosure<'a, dyn FnMut(T)>) -> Promise<JsValue>where
ScopedClosure<'a, dyn FnMut(T)>: ErasableGenericBorrow<ScopedClosure<'static, dyn FnMut(JsValue)>>,
Source§impl<T> Promise<T>
impl<T> Promise<T>
pub fn then_with_reject<'a, R: Promising>(
&self,
resolve: &ScopedClosure<'a, dyn FnMut(T) -> Result<R, JsError>>,
reject: &ScopedClosure<'a, dyn FnMut(JsValue) -> Result<R, JsError>>,
) -> Promise<R::Resolution>where
ScopedClosure<'a, dyn FnMut(T) -> Result<R, JsError>>: ErasableGenericBorrow<ScopedClosure<'static, dyn FnMut(JsValue) -> Result<JsValue, JsError>>>,
ScopedClosure<'a, dyn FnMut(JsValue) -> Result<R, JsError>>: ErasableGenericBorrow<ScopedClosure<'static, dyn FnMut(JsValue) -> Result<JsValue, JsError>>>,
Promise<R::Resolution>: ErasableGenericOwn<Promise<JsValue>> + EncodeTypeDef + BatchableResult,
Source§impl<T> Promise<T>
impl<T> Promise<T>
pub fn then_map<'a, R: Promising>(
&self,
cb: &ScopedClosure<'a, dyn FnMut(T) -> Result<R, JsError>>,
) -> Promise<R::Resolution>where
ScopedClosure<'a, dyn FnMut(T) -> Result<R, JsError>>: ErasableGenericBorrow<ScopedClosure<'static, dyn FnMut(JsValue) -> Result<JsValue, JsError>>>,
Promise<R::Resolution>: ErasableGenericOwn<Promise<JsValue>> + EncodeTypeDef + BatchableResult,
Source§impl Promise
impl Promise
pub fn then2( &self, resolve: &ScopedClosure<'_, dyn FnMut(JsValue)>, reject: &ScopedClosure<'_, dyn FnMut(JsValue)>, ) -> Promise
Source§impl Promise
impl Promise
Sourcepub fn all_tuple<T: PromiseTuple>(promises: T) -> Promise<T::Joined>
pub fn all_tuple<T: PromiseTuple>(promises: T) -> Promise<T::Joined>
Heterogeneous counterpart to Promise::all_iterable: accepts a Rust
tuple of Promise<T_i> and returns a single Promise resolving to a
typed ArrayTuple<(T_1, T_2, ..., T_n)>.
Destructure the awaited result via ArrayTuple::into_tuple to get
the individual values back as a native Rust tuple. Implemented for
arity 1..=8.
Rejects with the first rejection, matching Promise.all semantics.
§Example
use js_sys::Promise;
let (response, buffer) = Promise::all_tuple((fetch_promise, buffer_promise))
.await?
.into_tuple();Sourcepub fn all_settled_tuple<T: PromiseTuple>(promises: T) -> Promise<T::Settled>
pub fn all_settled_tuple<T: PromiseTuple>(promises: T) -> Promise<T::Settled>
Heterogeneous counterpart to Promise::all_settled_iterable: accepts
a Rust tuple of Promise<T_i> and returns a single Promise
resolving to a typed
ArrayTuple<(PromiseState<T_1>, ..., PromiseState<T_n>)>.
Unlike Promise::all_tuple, this never rejects early: every input
settles (fulfills or rejects) and is reflected by its PromiseState
slot in the result tuple. Implemented for arity 1..=8.
§Example
use js_sys::Promise;
let results = Promise::all_settled_tuple((fetch_promise, buffer_promise)).await?;
let (response_state, buffer_state) = results.into_tuple();Methods from Deref<Target = Object>§
pub fn constructor(&self) -> Function
pub fn has_own_property(&self, property: &JsValue) -> bool
Use Object::hasOwn instead.
pub fn is_prototype_of(&self, value: &JsValue) -> bool
pub fn property_is_enumerable(&self, property: &JsValue) -> bool
pub fn to_locale_string(&self) -> JsString
pub fn to_string(&self) -> JsString
pub fn to_js_string(&self) -> JsString
pub fn value_of(&self) -> Object
Methods from Deref<Target = JsValue>§
pub const NULL: JsValue
pub const UNDEFINED: JsValue
pub const TRUE: JsValue
pub const FALSE: JsValue
Sourcepub fn unchecked_into_f64(&self) -> f64
pub fn unchecked_into_f64(&self) -> f64
Returns the value as f64 without type checking. Used by serde-wasm-bindgen for numeric conversions.
Sourcepub fn has_type<T>(&self) -> boolwhere
T: JsCast,
pub fn has_type<T>(&self) -> boolwhere
T: JsCast,
Check if this value is an instance of a specific JS type.
Sourcepub fn checked_div(&self, rhs: &JsValue) -> JsValue
pub fn checked_div(&self, rhs: &JsValue) -> JsValue
Checked division.
Sourcepub fn unsigned_shr(&self, rhs: &JsValue) -> u32
pub fn unsigned_shr(&self, rhs: &JsValue) -> u32
Unsigned right shift.
Sourcepub fn is_function(&self) -> bool
pub fn is_function(&self) -> bool
Check if this value is a function.
Sourcepub fn is_undefined(&self) -> bool
pub fn is_undefined(&self) -> bool
Check if this value is undefined.
Sourcepub fn is_null_or_undefined(&self) -> bool
pub fn is_null_or_undefined(&self) -> bool
Check if this value is null or undefined.
Sourcepub fn js_in(&self, obj: &JsValue) -> bool
pub fn js_in(&self, obj: &JsValue) -> bool
Check if this value has a property with the given name.
Sourcepub fn as_debug_string(&self) -> String
pub fn as_debug_string(&self) -> String
Get a debug string representation of the value.
Trait Implementations§
Source§impl<T> BatchableResult for Promise<T>
impl<T> BatchableResult for Promise<T>
fn try_placeholder(batch: &mut Runtime<'_>) -> Option<Self>
Source§impl<T> BinaryDecode for Promise<T>
impl<T> BinaryDecode for Promise<T>
fn decode(decoder: &mut DecodedData<'_>) -> Result<Self, DecodeError>
Source§impl<T> BinaryEncode for Promise<T>
impl<T> BinaryEncode for Promise<T>
fn encode(self, encoder: &mut EncodedData)
Source§impl<T> EncodeTypeDef for Promise<T>
impl<T> EncodeTypeDef for Promise<T>
fn encode_type_def(type_def: &mut TypeDef)
Source§impl<T: FromWasmAbi + 'static> IntoFuture for Promise<T>
impl<T: FromWasmAbi + 'static> IntoFuture for Promise<T>
Source§impl<T: 'static> IntoJsGeneric for Promise<T>
impl<T: 'static> IntoJsGeneric for Promise<T>
Source§impl<T> JsCast for Promise<T>
impl<T> JsCast for Promise<T>
Source§fn instanceof(__val: &JsValue) -> bool
fn instanceof(__val: &JsValue) -> bool
Source§fn unchecked_from_js(val: JsValue) -> Self
fn unchecked_from_js(val: JsValue) -> Self
Source§fn unchecked_from_js_ref(val: &JsValue) -> &Self
fn unchecked_from_js_ref(val: &JsValue) -> &Self
Source§fn is_type_of(val: &JsValue) -> bool
fn is_type_of(val: &JsValue) -> bool
JsValue provided
is a value of this type. Read moreSource§fn has_type<T>(&self) -> boolwhere
T: JsCast,
fn has_type<T>(&self) -> boolwhere
T: JsCast,
T. Read moreSource§fn dyn_into<T>(self) -> Result<T, Self>where
T: JsCast,
fn dyn_into<T>(self) -> Result<T, Self>where
T: JsCast,
Source§fn dyn_ref<T>(&self) -> Option<&T>where
T: JsCast,
fn dyn_ref<T>(&self) -> Option<&T>where
T: JsCast,
Source§fn is_instance_of<T>(&self) -> boolwhere
T: JsCast,
fn is_instance_of<T>(&self) -> boolwhere
T: JsCast,
T. Read moreSource§fn unchecked_into<T>(self) -> Twhere
T: JsCast,
fn unchecked_into<T>(self) -> Twhere
T: JsCast,
Source§fn unchecked_ref<T>(&self) -> &Twhere
T: JsCast,
fn unchecked_ref<T>(&self) -> &Twhere
T: JsCast,
impl<T> UpcastFrom<Promise<T>> for JsValue
impl<T> UpcastFrom<Promise<T>> for JsOption<JsValue>
impl<T, __WryUpcastTarget0> UpcastFrom<Promise<T>> for Promise<__WryUpcastTarget0>where
__WryUpcastTarget0: UpcastFrom<T>,
impl<T, __WryUpcastTarget0> UpcastFrom<Promise<T>> for JsOption<Promise<__WryUpcastTarget0>>where
__WryUpcastTarget0: UpcastFrom<T>,
impl<T> UpcastFrom<Promise<T>> for Object
impl<T> UpcastFrom<Promise<T>> for JsOption<Object>
Auto Trait Implementations§
impl<T> Freeze for Promise<T>
impl<T> RefUnwindSafe for Promise<T>
impl<T> Send for Promise<T>
impl<T> Sync for Promise<T>
impl<T> Unpin for Promise<T>
impl<T> UnsafeUnpin for Promise<T>
impl<T> UnwindSafe for Promise<T>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FromJsFuture for Twhere
T: TryFromJsValue,
impl<T> FromJsFuture for Twhere
T: TryFromJsValue,
Source§impl<T> FromWasmAbi for Twhere
T: JsGeneric,
impl<T> FromWasmAbi for Twhere
T: JsGeneric,
Source§impl<T> IntoWasmAbi for Twhere
T: JsGeneric,
impl<T> IntoWasmAbi for Twhere
T: JsGeneric,
impl<T> JsGeneric for Twhere
T: ErasableGeneric<Repr = JsValue> + UpcastFrom<T> + Upcast<JsValue> + JsCast + JsRefEncode + EncodeTypeDef + BinaryEncode + BinaryDecode + BatchableResult + 'static,
impl<T> OptionFromWasmAbi for Twhere
T: FromWasmAbi,
impl<T> OptionIntoWasmAbi for Twhere
T: IntoWasmAbi,
Source§impl<T> RefFromWasmAbi for Twhere
T: ?Sized,
impl<T> RefFromWasmAbi for Twhere
T: ?Sized,
Source§impl<T> ReturnSync for Twhere
T: IntoWasmAbi,
impl<T> ReturnSync for Twhere
T: IntoWasmAbi,
Source§fn return_abi(self, encoder: &mut EncodedData)
fn return_abi(self, encoder: &mut EncodedData)
self as the function’s return payload.