我正在尝试实现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();
在这次调用之后,我试图从 read3 函数获取数据,但我得到的是空数据。由于执行时间。
我怎样才能等到执行完成。
最佳答案
您将看不到任何数据,因为您的请求是异步执行的!如果您想处理数据,则必须在模型读取方法的成功回调中执行此操作。但即使使用同步调用,您也不会看到数据,因为您的方法 read1、read2、read3 不会返回数据。
关于javascript - 尝试在SAPUI5中实现oData的异步读取调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31159637/