这是一个更好的方法。基于比罗斯基的回答。
第 1 步:angular service使用 RxJS Observables创建一个。
import { Injectable } from '@angular/core';
import { Observable, BehaviorSubject } from 'rxjs';
@Injectable()
export class WindowService {
    height$: Observable<number>;
    //create more Observables as and when needed for various properties
    hello: string = "Hello";
    constructor() {
        let windowSize$ = new BehaviorSubject(getWindowSize());
        this.height$ = (windowSize$.pluck('height') as Observable<number>).distinctUntilChanged();
        Observable.fromEvent(window, 'resize')
            .map(getWindowSize)
            .subscribe(windowSize$);
    }
}
function getWindowSize() {
    return {
        height: window.innerHeight
        //you can sense other parameters here
    };
};
第 2 步:注入上述内容service并订阅Observables服务中创建的任何您希望接收窗口大小调整事件的地方。
import { Component } from '@angular/core';
//import service
import { WindowService } from '../Services/window.service';
@Component({
    selector: 'pm-app',
    templateUrl: './componentTemplates/app.component.html',
    providers: [WindowService]
})
export class AppComponent { 
    constructor(private windowService: WindowService) {
        //subscribe to the window resize event
        windowService.height$.subscribe((value:any) => {
            //Do whatever you want with the value.
            //You can also subscribe to other observables of the service
        });
    }
}
对react式编程的充分理解总是有助于克服困难的问题。希望这可以帮助某人。