dojo Dstore内存筛选器返回空数据,除非应用,forEach

xv8emn3q  于 2022-12-16  发布在  Dojo
关注(0)|答案(1)|浏览(140)

我有一个“dstore/Memory”对象,声明如下:

this.flightStore = new Memory({
    data: flights,
    idProperty: 'myId'
});

我想返回一个过滤后的集合来显示,所以我写了这样的代码:

var test = this.flightStore.filter({matchType:view});

它返回一个'test'对象,但'data'字段为空。然而,当我编写相同的代码,但添加一个forEach函数时:

this.flightStore.filter({matchType:view}).forEach(function(flight) { ... }

这很好地工作,我一个接一个地得到了过滤结果,然后我可以为过滤后的集合构建一个数组,我很好奇为什么我的第一行不起作用,是否有一种方法可以让它起作用,而不必循环遍历每个结果并手动构建我的数组。
谢谢!

91zkwejq

91zkwejq1#

filter方法只应用过滤器,不提取数据。forEach方法提取数据并对其应用回调。如果要在应用过滤器后提取数据,请调用fetch

var dataPromise = this.flightStore.filter({matchType: view}).fetch();

如果使用同步存储(dstore/Memory),则fetchSync方法可用:

var testData = this.flightStore.filter({matchType: view}).fetchSync();

相关问题