pub struct Deferred { /* private fields */ }Expand description
A controller struct that can be used to resolve or reject a JsPromise.
It is recommended to settle a Deferred with Deferred::settle_with to ensure
exceptions are caught.
On Node-API versions less than 6, dropping a Deferred without settling will
cause a panic. On Node-API 6+, the associated JsPromise will be automatically
rejected.
§Examples
Implementations§
Source§impl Deferred
impl Deferred
Sourcepub fn resolve<'a, V, C>(self, cx: &mut C, value: Handle<'_, V>)
pub fn resolve<'a, V, C>(self, cx: &mut C, value: Handle<'_, V>)
Resolve a JsPromise with a JavaScript value
Sourcepub fn reject<'a, V, C>(self, cx: &mut C, value: Handle<'_, V>)
pub fn reject<'a, V, C>(self, cx: &mut C, value: Handle<'_, V>)
Reject a JsPromise with a JavaScript value
Sourcepub fn try_settle_with<V, F>(
self,
channel: &Channel,
complete: F,
) -> Result<JoinHandle<()>, SendError>
Available on crate feature napi-4 only.
pub fn try_settle_with<V, F>( self, channel: &Channel, complete: F, ) -> Result<JoinHandle<()>, SendError>
napi-4 only.Settle the JsPromise by sending a closure across a Channel
to be executed on the main JavaScript thread.
Usage is identical to Deferred::settle_with.
Returns a SendError if sending the closure to the main JavaScript thread fails.
See Channel::try_send for more details.
Sourcepub fn settle_with<V, F>(self, channel: &Channel, complete: F) -> JoinHandle<()> ⓘ
Available on crate feature napi-4 only.
pub fn settle_with<V, F>(self, channel: &Channel, complete: F) -> JoinHandle<()> ⓘ
napi-4 only.Trait Implementations§
Auto Trait Implementations§
impl Freeze for Deferred
impl RefUnwindSafe for Deferred
impl Send for Deferred
impl !Sync for Deferred
impl Unpin for Deferred
impl UnwindSafe for Deferred
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
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more