Merge pull request #1477 from lnicola/impl-debug-jsfuture

Implement Debug for JsFuture
This commit is contained in:
Alex Crichton 2019-04-22 10:42:55 -05:00 committed by GitHub
commit a0700f8de3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 0 deletions

View File

@ -104,6 +104,7 @@
#![deny(missing_docs)]
use std::cell::{Cell, RefCell};
use std::fmt;
use std::rc::Rc;
use std::sync::Arc;
@ -128,6 +129,12 @@ pub struct JsFuture {
callbacks: Option<(Closure<FnMut(JsValue)>, Closure<FnMut(JsValue)>)>,
}
impl fmt::Debug for JsFuture {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "JsFuture {{ ... }}")
}
}
impl From<Promise> for JsFuture {
fn from(js: Promise) -> JsFuture {
// Use the `then` method to schedule two callbacks, one for the

View File

@ -52,6 +52,13 @@ fn error_future_is_rejected_promise() -> impl Future<Item = (), Error = JsValue>
})
}
#[wasm_bindgen_test]
fn debug_jsfuture() {
let p = js_sys::Promise::resolve(&JsValue::from(42));
let f = JsFuture::from(p);
assert_eq!(&format!("{:?}", f), "JsFuture { ... }");
}
#[wasm_bindgen]
extern "C" {
fn setTimeout(c: &Closure<FnMut()>);