on master help sign in
wait for a new tick of the micro-task queue
commitaa84b6c3b14fa6c2645f3047fbfb85c4d7ca95c9 authorldesgoui <ldesgoui@ldesgoui.xyz> dateMon 2 Dec 2019, 22:07 (7 years ago) parent2907079
1 file changed+6
src/vdom.rs+6
src/vdom.rs+6
@@ -380,6 +380,9 @@ impl VdomWeak {
380380 ) -> Result<Box<dyn RootRender + 'static>, VdomDroppedError> {
381381 let inner = self.inner.upgrade().ok_or(VdomDroppedError {})?;
382382
383+ // Wait for a new tick of the micro-task queue
384+ let _ = JsFuture::from(js_sys::Promise::resolve(&JsValue::null())).await;
385+
383386 let old = {
384387 let mut exclusive = inner.exclusive.borrow_mut();
385388 mem::replace(&mut *exclusive.component.as_mut().unwrap_throw(), root)
@@ -401,6 +404,9 @@ impl VdomWeak {
401404 {
402405 let inner = self.inner.upgrade().ok_or(VdomDroppedError {})?;
403406
407+ // Wait for a new tick of the micro-task queue
408+ let _ = JsFuture::from(js_sys::Promise::resolve(&JsValue::null())).await;
409+
404410 let mut exclusive = inner.exclusive.borrow_mut();
405411
406412 Ok(f(exclusive.component_raw_mut()))