Если alreadyExist
возвращает boolean
, вы можете использовать mergeMap
, который будет ждать его результата, а если он true
, то он отобразит его в исходное значение x
. Когда он false
, он просто отфильтровывается filter
.
s$.pipe(
map((x) => x + 1),
mergeMap(x => from(alreadyExist(x)).pipe(
filter(Boolean),
mapTo(x),
)),
)
.subscribe(...)
Вы можете использовать другой столбец, например id
, в качестве pk.