我需要通过执行以下操作来实例化数据库:
Observable.fromFuture(getApplicationDocumentsDirectory())
(Directory dir) =>
等待 Observable.fromFuture(dir.create(recursive: true))
。(Directory dir) => String
或在代码中
Observable.fromFuture(...)
.waitToResolveWithoutMapToIt((dir) => Observable.fromFuture(...))
.map((dir) => ...)
.switchMap(_openDatabase$);
我正在努力应对第2节。
是否有一种方便的方法告诉RxDart等待Observable.fromFuture(dir.create(recursive: true))
解析而不进行映射,然后继续第3节?
我可以想到两种解决方法:
切换到.create
,然后切换回目录。
从giben观察到withLatest,然后将其映射回dir
。
PS 1
我注意到RxJS拥有delayWhen
可以解决我的问题,但不幸的是RxDart
尚未实现此方法(至今?)。
PS 2
我发现dir.create
将返回目录,这使我无法执行所有操作,但是问题仍然可行,因为下次我不会很幸运。