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
はまだ空です (正しく入力されますが、後ですべての Future が完了した後で)。問題は、呼び出しによって作成されたgetByKey()
先物が、呼び出しによって作成された先物によって「キャプチャ」されていないことだと思いforEach()
ます。
結果を正しく取得するためにコードを修正するにはどうすればよいですか?