首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >作为折叠的一部分在FutureOr<bool>上应用布尔运算符

作为折叠的一部分在FutureOr<bool>上应用布尔运算符
EN

Stack Overflow用户
提问于 2022-11-16 17:32:40
回答 1查看 16关注 0票数 0

对于文档列表,我试图检查Firestore中的布尔值是否为真。

在试图编译下面的代码时,我继续获取错误The argument type 'Future<bool> Function(bool, DocumentReference<Object?>)' can't be assigned to parameter type 'FutureOr<bool>'

代码语言:javascript
运行
复制
Future<bool> checkValInAllDocsIstrue(
  List<DocumentReference> docs
) async {
  return docs.fold(Future.value(true),
    (Future<bool> acc, doc) => doc.get().then((doc_) {
      Map<String, dynamic> fetchDoc = doc_.data() as Map<String, dynamic>;
            bool val = fetchDoc["val"];
            return acc.then((acc_) => acc_ && val);
    }, onError: (e) => Future.error(e))
  );
}

在谷歌上,我知道acc_ && val是向FutureOr<bool>转换的,但我不知道如何将其转换到所需的Future<bool>。任何帮助都将不胜感激。

不幸的是,我不能更改函数的签名,因为这是给定的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-21 19:42:59

我注意到,如果我显式地按如下方式强制转换返回类型(附带额外的代码清理),它就能工作。

代码语言:javascript
运行
复制
Future<bool> checkValInAllDocsIstrue(
  List<DocumentReference> docs
) async {
  return docs.fold(true,
    (bool acc, doc) => doc.get().then((doc_) =>
       acc && doc_.data()["val"], onError: (e) => Future.error(e))
  ) as bool;
}

我希望这对其他人有帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74464807

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档