Мне нужно создать экземпляр базы данных, выполнив следующие операции:
Observable.fromFuture(getApplicationDocumentsDirectory())
(Directory dir) =>
ждать Observable.fromFuture(dir.create(recursive: true))
. (Directory dir) => String
- switchMap из будущего.
Или в коде:
Observable.fromFuture(...)
.waitToResolveWithoutMapToIt((dir) => Observable.fromFuture(...))
.map((dir) => ...)
.switchMap(_openDatabase$);
Я борюсь с разделом 2.
Есть ли удобный способ заставить RxDart ждать разрешения Observable.fromFuture(dir.create(recursive: true))
БЕЗ сопоставления с ним и затем перейти к разделу 3?
Я могу придумать два обходных пути:
SwitchMap внутри SwitchMap
переключиться на .create
, а затем переключиться обратно в каталог.
WithLatestFrom (a, b) => (a)
сделать с последним из гибенанаблюдаемый, и сопоставьте его с dir
.
PS 1
Я заметил, что RxJS имеет delayWhen
, который может решить мою проблему,но, к сожалению, RxDart
не реализовал этот метод (пока?).
PS 2
Я обнаружил, что dir.create
вернет dir, что сохраняетя от всего этого делаю, но квестИон остается жизнеспособным, так как в следующий раз мне не повезет.