Я новичок в 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 не прав (?), но я не нашел приличного способа преобразования между ними ...