РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
491 of 723 menu

Свойство future

Свойство future класса Completer возвращает объект Future, связанный с данным Completer. Этот Future будет завершён, когда у Completer будет вызван метод complete или completeError. Свойство не принимает параметров и доступно только для чтения. Обычно его используют, чтобы вернуть Future из функции и позже завершить его вручную в нужный момент.

Синтаксис

completer.future

Пример

Давайте создадим Completer, получим его future и завершим через complete со значением 'abcde':

import 'dart:async'; void main() { Completer<String> completer = Completer<String>(); Future<String> future = completer.future; future.then((value) { print(value); }); completer.complete('abcde'); }

Результат выполнения кода:

"abcde"

Пример

Давайте завершим future через completeError и обработаем ошибку через catchError:

import 'dart:async'; void main() { Completer<String> completer = Completer<String>(); Future<String> future = completer.future; future.catchError((error) { print('Error: $error'); return 'default'; }); completer.completeError('something went wrong'); }

Результат выполнения кода:

"Error: something went wrong"

Пример

Давайте вернём future из функции и завершим его позже через Timer:

import 'dart:async'; Future<String> getValue() { Completer<String> completer = Completer<String>(); Timer(Duration(seconds: 1), () { completer.complete('12345'); }); return completer.future; } void main() { getValue().then((value) { print(value); }); }

Результат выполнения кода:

"12345"

Смотрите также

  • класс Completer,
    который позволяет вручную завершать Future
  • метод complete,
    который завершает future значением
  • метод completeError,
    который завершает future ошибкой
  • свойство isCompleted,
    которое показывает, завершён ли Completer
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить