Флаттер - Как вернуть ошибку из будущего в дротике? - PullRequest
0 голосов
/ 01 февраля 2019

В моем приложении флаттера есть будущее, которое обрабатывает запросы http и возвращает декодированные данные.Но я хочу иметь возможность отправить сообщение об ошибке, если код состояния! = 200, который можно получить с помощью обработчика .catchError().

Вот будущее:

Future<List> getEvents(String customerID) async {
  var response = await http.get(
    Uri.encodeFull(...)
  );

  if (response.statusCode == 200){
    return jsonDecode(response.body);
  }else{
    // I want to return error here 
  }
}

и когда я вызываю эту функцию, я хочу иметь возможность получить ошибку вроде:

getEvents(customerID)
.then(
  ...
).catchError(
  (error) => print(error)
);

1 Ответ

0 голосов
/ 01 февраля 2019

Вы можете использовать throw:

Future<List> getEvents(String customerID) async {
  var response = await http.get(
    Uri.encodeFull(...)
  );

  if (response.statusCode == 200){
    return jsonDecode(response.body);
  }else{
    // I want to return error here 
       throw("some arbitrary error"); // error thrown
  }
}
...