一般刪除修改是乙個非同步操作,當我們修改資料的時候希望修改完再從資料庫取出渲染,這其中就會出現一些非同步操作,導致效果往往跟我們想像不同,比如,
這是新增成功後需要重新獲取資料並且重新分配頁面,
重新獲取資料這是非同步操作,我們將他設為非同步a,
分頁這是同步操作,我們設為同步b。
如果按照我們所想,先去呼叫getinfo函式,獲取資料,然後通過呼叫handpagechenk來設定分頁,理論上是沒錯的。但是,傳送請求是非同步操作,也就是說,它會先執行同步b,在執行非同步a,就是先分頁了,再重新獲取資料,那這樣分頁的資料就是老資料,也就起不到重新分頁功能。
解決辦法:首先我想到了promise
但是,promise的.then是微任務,而請求是巨集仁務,微任務比巨集仁務優先順序高,但解析到getinfo,會把裡面的網路請求放到巨集仁務中,而解析到,then,會放到微任務中,也就是同不b一樣會比非同步a先執行。所以我用async+await的方法
如果單純這樣寫,this.geifinfo不是乙個promise物件所以不會有用,故在getinfo上
也加上async await,async宣告這是乙個非同步函式,await後的網路請求返回的是promise物件,故可以達到解決非同步的效果。因為整個流程會在這裡等他執行完畢再繼續解析。這樣就解決非同步操作了。
VUE資料的重新渲染
vue資料的重新渲染 在乙個複雜的資料結構中 list 修改list2中的某乙個值後,進行了處理後,但處理後的值不重新渲染。但通過控制台的列印,看到的資料是處理後的,因此也就明白資料是沒有重新渲染出來,然後就進行了各種除錯,現總結如下 var list this.list this.list thi...
MySQL資料插入 修改 刪除
insert 語句的定義 insert用於向乙個已有的表中插入新行。insert values語句根據明確指定的值插入行。讓我們先來看一下insert語句標準的定義,放在內的都是可以省略的 insert low priority delayed high priority ignore into t...
oracle表資料修改 刪除
update table set column value column value where condition 1 修改員工smith員工部門編號為30 update emp set deptno 30 where ename smith 2 修改所有部門編號為30的員工部門編號為20 upd...