请求服务器是程序开发过程的常规操作。在微 信小程序开发过程中,请求服务器需要使用到wx.request()函数。
但是,在开发过程中,我们可能会遇见一个异步导致的问题,即在wx.request()函数返回之前,程序就继续执行该函数之后的代码去了,等wx.request()函数返回时,代码都执行完了,返回的内容也就失效了。
这主要是由于Java Script的异步机制造成!如何解决呢?
本文采取一种简单的方案。
查看官方文档的相关说明,我们可以发现,在数据接收成功后,一定会执行回调函数,即执行success中的代码。
我们在同步流程中才说“返回”,异步没有“返回”这个概念(或者说异步返回是没有意义的,等你返回了,我都走远了),异步对应的是“回调”,也就是说,对于一个异步函数,我们应该传入一个“回调函数”来接收结果。
于是,我们可以将所有依赖wx.request()结果的代码,都迁移到success函数中,这样就可以在保证程序的执行顺序。
当然,wx request()也可能失败,那么就在fail()回调函数中处理失败的情况。
此方法,亲测有效,但会导致代码层数增加,可读性降低。