今天在项目中遇到一个bug,一个编辑资源的页面中,有很多的下拉框,里面均为接口获取过来绑定的。然后需要根据实际情况绑定当前资源的各个值。由于接口的获取数据的时间的问题,导致了资源要绑定数据的时候,下拉框的数据还未获取过来。
由于项目中简单的封装了axios来使用接口,axios本身就是promise的,所以想到了使用promise的链式调用。
实例代码如下:
// 接口 getDetail() 为获取当前资源数据的接口
// 接口 getTypes() 为获取类型下拉值的接口
// 先获取类型值 再获取资源数据
getTypes().then(res=>{
.... // 下拉框数据的处理
return getDetail() // 注意这里返回的就是promise
}).then(res=>{
... // res 就是该资源数据
})
因为我用到了6个获取类型的接口,所以直接来了个6个promise的链式调用,这样就保证了提前要的数据可以提前获取到了。