我正在尝试按照此处所述创建Dojo商店https://dojotoolkit.org/documentation/tutorials/1.10/creating_stores/但是我需要在查询中实现现有的数据检索API。特别是来自https://apidocs.mendix.com/7/client/mx.data.html
的Mx.data.get我的QueryResults一直是空的,我想这是因为我使用的API使用回调并且没有提供承诺。
query: function (query, options) {
var deferred = new Deferred();
this.getResults(query, function (error, result) {
if (error) {
deferred.reject(error);
} else {
deferred.resolve(result);
}
});
return QueryResults(deferred.promise);
},
getResults: function (query) {
mx.data.get({
xpath: "//System.User",
filter: {
sort: [["Name", "asc"]],
offset: 0,
amount: 10
},
callback: function(objs) {
return(objs);
}
});
}
我看到代码已执行,但结果objs
永远不会返回,QueryResults
始终为空。 (我也试过QueryResults(deferred)
,但效果相同。
此处的任何人都可以帮助我mx.data.get
在制作QueryResults
时使用{/ 1}}吗?
答案 0 :(得分:0)
第二天早上一切都很清楚:只需要在回调中移动deferred.resolve
。
query: function (query, options) {
this.deferred = new Deferred();
this.getResults(query);
return QueryResults(deferred);
},
getResults: function (query) {
mx.data.get({
xpath: "//System.User",
filter: {
sort: [["Name", "asc"]],
offset: 0,
amount: 10
},
callback: lang.hitch(this, function(objs) {
this.deferred.resolve(objs);
});
}
});
}