我已经为我的元素的所有实例定义了一个静态变量作为 Map。如果它包含特定键,则应使用该值。如果键不包含,则实例应通过请求获取数据并将其保存在静态映射中,以便其他实例可以使用它。
static var data = new Map();
func() {
if (Elem.data.containsKey(['key']) {
list = Elem.data['key'];
}
else {
Helper.getData().then((requestedData) {
list = requestedData;
Elem.data.addAll({ 'key' : requestedData });
}
}
问题是我的所有实例都进入了 else,因为此时其他实例位于 if 中时,密钥不包含在 Map 中。所以我需要他们等待,直到数据在地图中。