JavaScript Promise.all()碰见的问题 Promise.all中的.then未等其中的promise执行完成而执行

碰见一个Promise.all()使用时候的问题

我定义很多请求,然后需要在跳转页面的时候一起发送请求,等待所有请求回来之后。然后显示页面数据。所以我这边就用Promise.all方法等待所有请求收到之后进行跳转。

但是发现还没有接收到请求返回的数据,就直接跳转了

查了很多资料,发现原因如下:

 这个是其中一个定义的方法,这个API是我封装好的AJAX。使用的promise在最外层包裹,按理Promise.all可以等待我这些API返回的结果,然后再等待所有API执行完成。但是没有这样。

发现原因:是因为我这个Promise.all(数组),里边这个数组的问题。我现在是在数据中定义的方法的调用,但是在定义这些请求方法的时候,我没有写return,结果这些数组的调用的方法就变成了值。

解决方案:只要在调用这个API的时候,前边加一个return,让Promise.all()中的数组都是方法,而不是值就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值