Наблюдаемое поведение флаттера - PullRequest
0 голосов
/ 22 сентября 2019

Я новичок в rx, поэтому возможно, что я делаю что-то ужасно неправильно.

Я пытаюсь преобразовать наблюдаемое в BehaviorSubject, поскольку мне хотелось бы иметь:
- несколько наблюдателей
- начальное значение

Observable<Note> _observableResult;
BehaviorSubject<Note> result;

 Observable<FileSystemEntity> getContentOfDirectory(file) {
final dir = Directory(file);
try {
  var stream = dir
      .list(recursive: false, followLinks: false)
      .where((fse) => !fse.path.contains("DS_Store"));
  return Observable(stream);
} catch (e) {
  debugPrint('getNoteError: $e');
  // If encountering an error, return 0
  return Observable.just(null);
}
}


getNotes() async {
final file = await _localPath;//Future<String>

_observableResult = getContentOfDirectory(file)
    .asyncMap((fse) {
      if (fse is File) {
        return fse.readAsString();
      } else {
        return null;
      }
    })
    .where((e) => e != null)
    .asyncMap((s) => Note.fromJsonResponse(s));

result =
    BehaviorSubject().withLatestFrom(_observableResult, (one, two) => two);
  }

Ошибка: наблюдаемоене подтип типа BehaviorSubject

Очевидно, чтоlateLatest не прав (?), но я не нашел приличного способа преобразования между ними ...

...