如何在 bool 为真之前为函数创建循环?

How to make a loop for a function until a bool is true?

我有一个函数可以使用 url 从 firebase 存储中获取一些信息,这些信息包含一个 bool,我想要实现的是在每个嵌套对象中循环一个 true 值我在这个 JSON 文件中,并在找到真实值时停止。

代码:

Future getAya() async {
    await checkInternet();
    await down_data();
    if (khatma == 'Khatma 1') {
      var rng = new Random();
      int ranum = rng.nextInt(2);
      var response = await http.get(
        'firebase link',
      );
      var myDataString = utf8.decode(response.bodyBytes);
      data = jsonDecode(myDataString);
      if (state = true) {
        print('Taken');
      } else {
        setState(() {
          ranAya = data['verse_$ranum']['Aya'];
          state = data['verse_$ranum']['taken'];
          audioLink = data['verse_$ranum']['audioLink'];
        });
      }

您可以像这样使用 do while 循环:

 Future getAya() async {
  bool state = false;

  do{
    await checkInternet();
    await down_data();
    if (khatma == 'Khatma 1') {
      var rng = new Random();
      int ranum = rng.nextInt(2);
      var response = await http.get(
        'firebase link',
      );
      var myDataString = utf8.decode(response.bodyBytes);
      data = jsonDecode(myDataString);
      state = data['verse_$ranum']['taken'];

      if (state) {
        print('Taken');
      } else {
        setState(() {
          ranAya = data['verse_$ranum']['Aya'];
          audioLink = data['verse_$ranum']['audioLink'];
        });
      }
    }
  }while(!state);
}