Angular 6,订阅activateRoute.queryParamMap,WebStorm给出“从订阅返回的Promise被忽略”警告

Joh*_*son 6 webstorm angular

我在 Angular 6 中有以下代码:

import { Component, OnInit } from "@angular/core";
import { ActivatedRoute, Router } from "@angular/router";

...

export class someComponent implements OnInit {

  life: string;

  constructor(
    private route: ActivatedRoute
  ) {}

  ngOnInit(): void {

    this.route.queryParamMap.subscribe(urlParams => this.life = urlParams.get('foo'));
  }

  ...

}
Run Code Online (Sandbox Code Playgroud)

我已从 ActivatedRoute 实例化,我的目标是将url 中的route查询参数分配给名为 的变量之一。但是,我在 WebStorm 上收到以下警告(绿色卷线,所以我不确定它们是警告、错误还是其他内容):foolife

  1. 当我将鼠标悬停在subscribe我得到Promise returned from subscribe is ignored
  2. 当我将鼠标悬停在urlParams我得到Argument type (urlParams: any) => void is not assignable to parameter type PushSubscriptionOptionsInit | undefined

警告 1 和警告 2 的屏幕截图

块引用

Jun*_* He -1

在 Angular 中(目前在 Angular-6 上),.subscribe() 是 Observable 类型上的一个方法。Observable 类型是一种实用程序,它可以异步或同步地将数据流式传输到已订阅 observable 的各种组件或服务。

this._route.paramMap.pipe(
  switchMap((params: ParamMap) => {
      this.FID = params.get('id');
      return this._serviceXXX();
    }
  )
).subscribe(data => {
  // then code
});
Run Code Online (Sandbox Code Playgroud)

  • 这如何回答这个问题? (5认同)