今天在寫vue的時候遇到了一個問題,我想在匯出之前先執行一遍查詢,這個查詢里面涉及到遞回操作,但是方法的執行順序很奇怪,查詢只執行了一層就執行后面匯出的內容了,這是原始碼,請問大佬們怎么讓查詢的遞回走完再執行后面的代碼?
exportExcel(path){
this.findPage(path);//先執行查詢 (遞回)
var data = this.dataList;//目標資料
window.location.href = '/api/report?data='https://bbs.csdn.net/topics/+data;
}
uj5u.com熱心網友回復:
把你這里面的代碼分成兩個方法寫,然后呼叫呢uj5u.com熱心網友回復:
仔細檢查下findPageuj5u.com熱心網友回復:

就是一個遞回呼叫
uj5u.com熱心網友回復:


已經把匯出單獨寫成方法了,但是執行順序還是沒變
uj5u.com熱心網友回復:
findPage里面邏輯有問題吧uj5u.com熱心網友回復:
我單獨執行findPage的時候是沒問題的,會直接將整個遞回的流程走完uj5u.com熱心網友回復:
setTimeout(function () {grid.api.reloadData();
},500);
執行this.findPage(path);//先執行查詢 (遞回),讓后面的函式方法等一會試一試
uj5u.com熱心網友回復:
var data = this.dataList;//目標資料window.location.href = '/api/report?data='https://bbs.csdn.net/topics/+data;
把這個直接放到你遍歷后資料的方法下面,直接寫出一個方法就行了
uj5u.com熱心網友回復:
應該可能是因為你上面那個方法是去后臺查詢資料的,因為他查詢時候是后臺執行,前臺就認為是執行完成了,實際后臺回傳資料還沒完整,我一般都是將這種方法寫在返還成功時候的方法中uj5u.com熱心網友回復:
解決了,多謝大佬
uj5u.com熱心網友回復:
解決了就行
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/225644.html
標籤:Web 開發
上一篇:代碼是給人讀的,不是拿來炫技的
下一篇:大佬救命
