【问题标题】:Observable `of` deprecated. What is the equivalent?不推荐使用可观察的“of”。什么是等价物?
【发布时间】:2019-10-01 04:53:20
【问题描述】:

就我而言,我有一个访问令牌,如果该令牌存在,我会将其作为字符串类型的可观察对象返回:

if (this.accessToken){
  return of(this.accessToken);
}

由于最近的更新,我注意到 of 已被弃用,并显示以下消息:

of is deprecated: use scheduled instead 'scheduled([a, b, c], scheduler)' (deprecation)

新的语法相当冗长,有人知道同样简单的of 的等效scheduled 版本吗?关键字名称使搜索有关它的信息变得困难。

谢谢!

【问题讨论】:

  • 你一定是输入了错误的of。检查您的导入语句?

标签: javascript angular typescript rxjs


【解决方案1】:

仅不推荐使用接受调度程序的重载。您使用的变体未被弃用,请参阅https://github.com/ReactiveX/rxjs/blob/master/src/internal/observable/of.ts

【讨论】:

    【解决方案2】:

    如上所述,它没有被弃用。

    我想你正在从 RxJS v5 迁移到 RxJS v6。在这种情况下:

    标准的可观察处理,如of、map、filter等

    Observable.of(1,2,3).map(x => 2 * x);
    

    变成

    import {of, map} from 'rxjs';
    import {map} from 'rxjs/operators';
    
    of(1,2,3).pipe(map(x => 2 * x));
    

    在此处查看更多信息https://www.learnrxjs.io/concepts/rxjs5-6.html

    【讨论】:

      【解决方案3】:

      如果您有调度程序,则of(item, scheduler) 的等效项为scheduled([item], scheduler)。如果您已经传入了一组项目,则不需要括号。

      【讨论】:

        【解决方案4】:

        @daniel-hilgarth 是对的,但如果您需要模拟 of(1, 2, 3),可以使用以下命令

        import {asapScheduler, scheduled} from "rxjs";
        scheduled([1, 2, 3], asapScheduler);
        

        import {asyncScheduler, scheduled} from "rxjs";
        scheduled([1, 2, 3], asyncScheduler);
        

        您可以在此处尽快了解更多信息:https://rxjs.dev/api/index/const/asapScheduler

        【讨论】:

          【解决方案5】:

          您需要正确导入。我举以下例子供大家参考。

          import { map } from 'rxjs/operators';
          
          const httpOptions = {
          headers: new HttpHeaders({
            'Content-type':  'application/json'
            })
          };
          
          return this.http.post(this.baseUrl + 'login', model, httpOptions).pipe(map((response : any) => {
          const user = response.json();
          if (user.accessToken){
            localStorage.setItem('token', user.accessToken);
            return user.accessToken;
          } }))
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2021-06-19
            • 1970-01-01
            • 2016-12-23
            • 1970-01-01
            • 1970-01-01
            • 2014-05-08
            • 2016-09-12
            相关资源
            最近更新 更多