我是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);
}
错误: Observable不是BehaviorSubject类型的子类型
显然combinateLatest不正确(?),但是我没有找到在它们之间进行转换的任何体面的方法...