gpt4 book ai didi

angular - fromPromise 在 Observable 类型上不存在

转载 作者:太空狗 更新时间:2023-10-29 16:46:08 32 4
gpt4 key购买 nike

在使用 rxjs 的 Angular 2 中,我试图将 Promise 转换为 Observable。正如许多在线指南所示,我在 Observable 上使用了 fromPromise。哪个抛出错误:

Property 'fromPromise' does not exist on type 'typeof Observable'.

Observable 的导入方式如下:

import { Observable } from "rxjs/Observable";

尝试像其他运算符一样导入 fromPromise 会导致错误:

import 'rxjs/add/operator/fromPromise';

即使我抑制 typescript 错误,它仍然会导致错误:

(<any>Observable).fromPromise

错误:

Uncaught (in promise): TypeError: __WEBPACK_IMPORTED_MODULE_3_rxjs_Observable__.Observable.fromPromise is not a function

在 rxjs repo here 上报告了一些类似的问题但那里也没有解决方案。

最佳答案

更新:

截至rxjs 6.0.0-beta.3,运算符和可观察的创建者应该从rxjs导入.此外,fromPromise不再是公共(public) API 的一部分,它包含在 from 中方法。

TL;DR;

更新

对于 rxjs 6.0.0 使用:

import { from } from 'rxjs';

var observableFromPromise = from(promiseSrc);

更新:

发布后pipeable operatorsrxjs 5.5.x,强烈建议不要使用猴子补丁方法。考虑使用静态方法选项。

原始答案

截至rxjs 5.4.x,fromPromise可以用作静态方法或可以修补到 Observable原型(prototype)。

首先,您可以执行以下操作:

import { fromPromise } from 'rxjs/observable/fromPromise';

var observableFromPromise = fromPromise(promiseSrc);

有关此方法的更多信息 here

要执行第二个操作,您需要更改导入语句:

import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/fromPromise';

var observableFromPromise = Observable.fromPromise(promiseSrc);

有关此方法的更多信息 here

我个人会推荐第一种,考虑到第二种方法基本上是第一种,不同之处在于 Observable原型(prototype)已更改。

关于angular - fromPromise 在 Observable 类型上不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45784825/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com