Почему будущее не становится полным? - PullRequest
0 голосов
/ 15 апреля 2019

Мне нужно получить весь документ в этой коллекции, который часто запрашивается - я получаю все документы успешно, но будущее никогда не заканчивается.

Я пробовал WhenComplete, но все еще не работает.

Future<Null> getOldVac(anId) async {
    print("getOldVac");
    await Firestore.instance
        .collection("users")
        .document(userId)
        .collection("animals")
        .document(anId)
        .collection("anMedication")
        .where("type", isEqualTo: "vac")
        .where("result", isEqualTo: "")
        .snapshots()
        .forEach((onValue) {
      print(onValue);
    }).then((onValue) {
      print("Done");
    }).catchError((onError) {
      print(onError);
    });
  }

Мне нужно напечатать "Готово", как только все будущее завершено.

Ответы [ 2 ]

0 голосов
/ 15 апреля 2019

Вы смешиваете promises с async await!

0 голосов
/ 15 апреля 2019

Вам нужно что-то вернуть, это может быть null, который вы используете, или void, или выдать ошибку.

попробуйте поставить return перед вашим await так:

return await Firestore.instance
        .collection("users")
        .document(userId)
        .collection("animals")
        .document(anId)
        .collection("anMedication")
        .where("type", isEqualTo: "vac")
        .where("result", isEqualTo: "")
        .snapshots()
        .forEach((onValue) {
      print(onValue);
      return null;
    }).then((onValue) {
      print("Done");
      return null;
    }).catchError((onError) {
      print(onError);
      throw onError;
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...