promise异步处理的神器,但是最近发现promise在处理微信小程序全局方法(app.js定义的方法)时就显的很鸡肋,为什么这么说呢?
众所周知,app.js和index.wxml(小程序首页)是同时进行加载的。这就会造成一个问题,那就是app.js中请求的后台接口,在index.wxml中是拿不到后台返回的数据的,因为是异步的,不确定何时返回,可能返回的时候index已经加载完成了。造成拿去后台返回的数据的时候报错,这时很多人就会想到用promise,可以,但是有没有发现使用promise 时,app.js调用一次,首页想要返回值时会再次调用,造成对后台请求频繁,如果是用户量较多的项目,那么就会对后台并发造成极大压力。因此我研究怎么才能监听接口的请求完成,后来发现回调函数真的很好用,代码如下
app.js在接口返回成功后创建一个回调函数
index.js(需要监听app.js后台请求成功的文件)
这样就实现了app.js后台异步操作执行完成,index.js自动监听回调的功能,避免了使用promise重复调用的问题。
除了后台请求可以用这种方法,几乎所有异步的操作都可以,例如音乐播放,视频播放这些。这里我就不一一举例了。