Итак, проблема в том, что вам нужно map
для обработки начального значения, но в то же время вам нужно, чтобы оно работало с Event
объектами, которые испускаются только событием 'resize'
.
Ну, самый простой способ - просто использовать startWith
после map
:
return fromEvent(this.nativeWindow, 'resize').pipe(
map(event => (event.target as Window).innerWidth),
startWith(this.nativeWindow.innerWidth)
);
или, если это невозможно (например, логика более сложная), вы можете «смоделировать» объект, чтобы map
обработал его, как любой другой объект Event.
return fromEvent(this.nativeWindow, 'resize').pipe(
startWith({ target: { innerWidth: this.nativeWindow.innerWidth }}),
map(event => (event.target as Window).innerWidth)
);