今天在做一个表格的增删改查的时候遇到了一个问题,就是删除了一条记录重新获取列表有50%左右是获取到的删除之前的列表。
后来终于发现是JavaScript中的异步操作造成的,我的删除函数需要发送服务器请求,所以是一个异步函数,在异步函数执行之后立即就会立即执行下一行代码,也就是我的列表查询函数。这个时候就有可能出现列表查询函数执行的速度比删除函数要快导致获取不到删除某一记录之后的数据。
解决办法就是在处理删除操作的函数前面加上async,表示这是一个包含异步操作的函数,这样就可以在删除函数前面加上await与其同步,等到删除函数执行完毕才会顺序执行列表查询函数