碰见一个Promise.all()使用时候的问题
我定义很多请求,然后需要在跳转页面的时候一起发送请求,等待所有请求回来之后。然后显示页面数据。所以我这边就用Promise.all方法等待所有请求收到之后进行跳转。
但是发现还没有接收到请求返回的数据,就直接跳转了
查了很多资料,发现原因如下:
这个是其中一个定义的方法,这个API是我封装好的AJAX。使用的promise在最外层包裹,按理Promise.all可以等待我这些API返回的结果,然后再等待所有API执行完成。但是没有这样。
发现原因:是因为我这个Promise.all(数组),里边这个数组的问题。我现在是在数据中定义的方法的调用,但是在定义这些请求方法的时候,我没有写return,结果这些数组的调用的方法就变成了值。
解决方案:只要在调用这个API的时候,前边加一个return,让Promise.all()中的数组都是方法,而不是值就可以了。