[Флаттер/Риверпод]разница между .будущим и .значением

#flutter #riverpod

Вопрос:

Я хотел бы знать разницу между двумя следующими;

  • ref.watch(fooProvider).value ВОЗВРАТ String?
  • ref.watch(fooProvider.future) ВОЗВРАТ Futurelt;String?gt;

Разница только в том, что они возвращают?

Я хочу знать, когда использовать. Пожалуйста, приведите мне пример.

ниже приведен пример кода;

 final fooProvider = FutureProviderlt;String?gt;((ref) {  return Future.delayed(Duration(seconds: 2), () =gt; "foo"); });  final xxx = FutureProviderlt;String?gt;((ref) async {  final String? ttt = ref.watch(fooProvider).value;  final String? sss = await ref.watch(fooProvider.future);   return '$ttt / $sss'; });  

Ответ №1:

ссылка.смотреть(fooProvider.future);

Является ли будущаяlt;Строка?gt;

ссылка.часы(fooProvider).значение;

Это струна? так что незачем ждать.