我正在使用 Lawndart 库访问浏览器数据,并希望收集一组查询的结果。这是我认为应该起作用的:
numberOfRecordsPerSection(callback) {
var map = new Map();
db_sections.keys().forEach((_key) {
db_sections.getByKey(_key).then((Map _section) {
int count = _section.length;
map[_key] = count;
});
}).then(callback(map));
}
但是,当回调被调用时,map
它仍然是空的(它被正确填充,但稍后,在所有 Futures 完成之后)。我认为问题在于调用创建的期货getByKey()
没有被调用创建的期货“捕获” forEach()
。
如何更正我的代码以正确捕获结果?