问题:从接口拿到数据之后,为数据添加一项,但是在页面无法显示数据添加的那一项。
由于js的事件循环机制,同步代码会先执行,请求属于异步任务,会后执行,拿到的数据会覆盖添加的那一项,所以无法显示。
解决方案:
创建一个Promise,在添加数据操作的地方使用await,等待异步任务结束,然后执行数据添加操作。
async fn() { const { data: res } = await getData() //请求 this.arr= res // 保存拿到的数据 return Promise.resolve(true) // 返回一个Promise携带一个参数 },
在需要为数据新添加一项的地方
const state = await this.fn() if (state) {//数据添加操作}
同步与异步
最新推荐文章于 2023-04-17 17:58:27 发布