伪代码
{
showLoading();
doSomething();
//在这里 loading 动画才会被渲染出来
//closeLoading();如果有这一句,loading 动画都不会渲染.....
}
这个需求怎么解决,setTimeout 可以吗? 还有别的办法吗?
我先去午睡,醒了没有答案,就打死在座的诸位.
1
fishlium 2019-05-22 14:23:56 +08:00
我猜 doSomething 是异步的,去看看 promise 吧
|
2
TomVista OP |
3
Phuasheng 2019-05-22 14:32:31 +08:00
这锅甩的,让我猝不及防
|
4
toma77 2019-05-22 14:33:55 +08:00
await...
|
7
DOLLOR 2019-05-22 14:54:03 +08:00
出于性能考虑,浏览器的 UI 渲染都发生在 task 结尾。
所以,你这段代码,```showLoading()```和```closeLoading()```是在同一个 task 里的,还没来得及渲染,就随着 task 的结束而消失了。 如果你想让```showLoading()```在```doSomething()```之前完成渲染,那你应该把```doSomething()```放在新的 task 中。 |
8
123s 2019-05-22 14:55:27 +08:00
不知道说什么
|