的Javascript
var denemeSource = new DevExpress.data.DataSource({
store: Deneme.db.deneme
}).load().done(function (result) {
alert("1x");
});
var denemeSource1 = new DevExpress.data.DataSource({
store: Deneme.db.deneme1
}).load().done(function (result) {
alert("2x");
});
var denemeSource2 = new DevExpress.data.DataSource({
store: Deneme.db.deneme2
}).load().done(function (result) {
alert("3x");
});
alert("4x");
如果代码是在Devextreme mobile中按顺序编写的,那么' 1x,2x,3x,4x'就不会按照订购。 ' 4X'成为最新的。
我如何继续顺序? (1倍,2倍,3倍,4倍)
DataSource对象如何作为同步工作?
答案 0 :(得分:0)
我没有你正在使用的图书馆的经验;但是,我确实有本机JavaScript的经验。希望有这个图书馆经验的人可以扩展我的答案,以进一步获得实现目标所需的任何信息。
您要实现的目标非常简单,但您需要首先了解异步函数的工作原理。
那就是说,你有两个想法。使用后一种方法调用异步函数或使用超时检查每个函数是否已成功运行。
我建议使用后者。
(new DevExpress.data.DataSource({
store: Deneme.db.deneme
}).load().done(function (result) {
alert("1x");
(new DevExpress.data.DataSource({
store: Deneme.db.deneme1
}).load().done(function (result) {
alert("2x");
(new DevExpress.data.DataSource({
store: Deneme.db.deneme3
}).load().done(function (result) {
alert("3x");
}));
}));
}));
使用超时,您应该知道超时也使用异步函数。
var returns = array(false, false, false);
var denemeSource = new DevExpress.data.DataSource({
store: Deneme.db.deneme
}).load().done(function (result) {
returns[0] = true;
});
var denemeSource1 = new DevExpress.data.DataSource({
store: Deneme.db.deneme1
}).load().done(function (result) {
returns[1] = true;
});
var denemeSource2 = new DevExpress.data.DataSource({
store: Deneme.db.deneme2
}).load().done(function (result) {
returns[2] = true;
});
timeout(function(){
//all functions run successfully
});
function timeout(success_func) {
setTimeout(function () {
for(var k in results){
if(results[k] == false){
has_false = true;
break;
}
}
if(has_false)
timeout();
else
success_func();
}, 1000);
}