我試圖實現讀取SAPUI5中的odata的異步函數調用。嘗試在SAPUI5中的oData上實現異步讀取調用
這裏是一個例子:
this.odataModel = new sap.ui.model.odata.ODataModel(oDataUrl, true, 'user', 'pwd');
/* data retrieving time 5sec */
function read1(){
this.odataModel.read('entity-url1',null, null, true, function(data){
console.log('success');
return data;
},
function(){ console.log('error'); });
}
/* data retrieving time 10sec */
function read2(){
this.odataModel.read('entity-url2',null, null, true, function(data){
console.log('success');
return data;
},
function(){ console.log('error'); });
}
/* data retrieving time 10sec */
function read3(){
this.odataModel.read('entity-ur3',null, null, true, function(data){
console.log('success');
return data;
},
function(){ console.log('error'); });
}
/* function calls */
var d1 = read1();
var d2 = read2();
var d3 = read3();
這個電話我試圖擺脫。讀函數的數據我得到空的數據之後。執行時間的原因。
我該如何等待,直到執行完成。
SAPUI5是一個模型驅動的框架。那麼爲什麼不將數據存儲在模型中而不是變量中呢?一旦一切都被加載並存儲在模型中,您可以更容易地訪問 – Qualiture
是的,我做到了。在我的情況下,我在不同的頁面中使用這三個函數。當我嘗試重新加載頁面,如果數據可用,它是綁定,如果不是它顯示空值。我該如何解決這個問題。 – mani
你是什麼意思,'重新加載'?在刷新瀏覽器?這不會奏效......您應該在視圖的onAfterRendering事件處理程序或數據檢索回調方法中處理數據。或者,如果您將視圖控件綁定到您的模型,數據將立即顯示,無需任何額外的編碼 – Qualiture