quickjs_oxide/engine/api/core/
promise.rs1use super::ops::{Js, JsResult};
4use super::value::{CallableRef, ObjectRef, Value};
5
6#[derive(Clone, Debug, PartialEq)]
11pub struct PromiseCapability {
12 pub promise: ObjectRef,
13 pub resolve: CallableRef,
14 pub reject: CallableRef,
15}
16
17impl PromiseCapability {
18 pub fn resolve(&self, js: &mut impl Js, value: Value) -> JsResult<()> {
22 js.call(&self.resolve, Value::Undefined, &[value]).map(drop)
23 }
24
25 pub fn reject(&self, js: &mut impl Js, reason: Value) -> JsResult<()> {
27 js.call(&self.reject, Value::Undefined, &[reason]).map(drop)
28 }
29}