simplify error handling
This commit is contained in:
parent
e431dc89a8
commit
bd652c956f
8 changed files with 94 additions and 147 deletions
12
src/event.rs
12
src/event.rs
|
@ -1,10 +1,7 @@
|
|||
use std::fmt::Debug;
|
||||
|
||||
use serde::{de::DeserializeOwned, Deserialize, Serialize};
|
||||
use wasm_bindgen::{prelude::Closure, JsValue};
|
||||
|
||||
use crate::Error;
|
||||
|
||||
#[derive(Deserialize)]
|
||||
pub struct Event<T> {
|
||||
/// Event name
|
||||
|
@ -49,8 +46,9 @@ impl<T: Debug> Debug for Event<T> {
|
|||
#[inline(always)]
|
||||
pub async fn emit<T: Serialize>(event: &str, payload: &T) -> crate::Result<()> {
|
||||
inner::emit(event, serde_wasm_bindgen::to_value(payload)?)
|
||||
.await
|
||||
.map_err(Error::Other)
|
||||
.await?;
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
/// Listen to an event from the backend.
|
||||
|
@ -83,7 +81,7 @@ where
|
|||
(handler)(serde_wasm_bindgen::from_value(raw).unwrap())
|
||||
});
|
||||
|
||||
let unlisten = inner::listen(event, &closure).await.map_err(Error::Other)?;
|
||||
let unlisten = inner::listen(event, &closure).await?;
|
||||
|
||||
closure.forget();
|
||||
|
||||
|
@ -128,7 +126,7 @@ where
|
|||
(handler)(serde_wasm_bindgen::from_value(raw).unwrap())
|
||||
});
|
||||
|
||||
let unlisten = inner::once(event, &closure).await.map_err(Error::Other)?;
|
||||
let unlisten = inner::once(event, &closure).await?;
|
||||
|
||||
closure.forget();
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue