Перерыв на ForEach () дротик - PullRequest
       0

Перерыв на ForEach () дротик

0 голосов
/ 09 января 2020

Я пишу функцию, в которой я перебираю карту и проверяю правильные значения в функции. У меня вопрос, есть ли лучший способ правильно сломаться с foreach l oop при обнаружении ошибки? ( 'break' не работает на foreach ())

Так как я не могу использовать функцию прерывания здесь, поэтому мне пришлось разместить маркер bool: /

Буду признателен за любую помощь в создании этого кода:)

  Future<bool> saveToKeychainFunc(Map data) {
    bool saved = false;
    bool error = false;

    data?.keys?.forEach((item) async {
      if (data[item] != null) {
        await _storage.write(key: item.toString(), value: data[item].toString());
      } else {
        //TODO
        // data error, we got null for a value!
        error = true;
      }
      saved = true;
    });

    return (error == true) ? false : saved;
  }

1 Ответ

2 голосов
/ 09 января 2020

Я испытал это. Моя работа вокруг использует for l oop вместо этого.

ex:

for (int i = 0; i < jsonTransactions.length; i++) {
    Transaction transaction = Transaction.fromJson(jsonTransactions[i]);
    transactions.add(transaction);
}

Вы можете просто добавить условия и добавить свой break в l oop, если условия выполняются. Поскольку вы используете карту, мой код не должен сильно отличаться, поскольку Map также имеет .length

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...