为什么不把onLoad和onShow做成同步的呢?
发布于 5 年前 作者 jie92 9920 次浏览 来自 问答

我是一个小程序开发小白,由于毕设进度挺赶的,所以没来得及在开始前,先把小程序文档细细的过一遍,开发到一半时出现了问题,发现某个数据死活取不出来,后来通过不断的debug发现是onLoad和onShow是异步执行的,以致我在onLoad中取的数据尚未拿到,onShow就已经进入request了(之前一直以为这俩是同步的,尴尬。。);虽然我也找到了我的问题,我想了解一下为啥不能把onLoad和onShow这俩做成同步呢?这样会出现什么问题呢?或者说这样做是弊大于利吗?

按我自己的设想是:

这俩异步执行,如果是两个关联性不大的任务分别在这俩里面执行可以提高执行效率。但是这样想感觉也不对,既然可以把两个异步执行的方法分别写在onLoad和onShow里面,那么同样可以把这样异步执行的两个任务都写在onLoad或者onShow里面啊,这样也没差啊?

从他们执行的时间来看:onLoad只在页面加载时执行;onShow会在跟其它页面交互的过程中执行多次,它监听页面显示;但是从这个视角看更容易让人误以为他们是分先后执行的了。。。。

js稀烂如我,求大佬指点。

3 回复

这两个执行是有先后的。onLoad中的函数未执行完,onShow开始执行了

你是在onload里执行了异步函数吗?

onload只拿options,其他加载时的操作全放onshow

回到顶部