use super::ops::{Js, JsResult};
use super::value::{CallableRef, ObjectRef, Value};
#[derive(Clone, Debug, PartialEq)]
pub struct PromiseCapability {
pub promise: ObjectRef,
pub resolve: CallableRef,
pub reject: CallableRef,
}
impl PromiseCapability {
pub fn resolve(&self, js: &mut impl Js, value: Value) -> JsResult<()> {
js.call(&self.resolve, Value::Undefined, &[value]).map(drop)
}
pub fn reject(&self, js: &mut impl Js, reason: Value) -> JsResult<()> {
js.call(&self.reject, Value::Undefined, &[reason]).map(drop)
}
}