最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

仅在CircleCI上构建时,Observable.fromPromise不存在

运维笔记admin10浏览0评论

仅在CircleCI上构建时,Observable.fromPromise不存在

仅在CircleCI上构建时,Observable.fromPromise不存在

任何人都可以帮我解决这个问题。下面的代码片段在NodeJS Typescript环境中运行,这可以在多个平台上的多台机器上正常工作,但无法在CircleCI上构建以下内容:

错误TS2339:类型'typeof Observable'上不存在属性'fromPromise'。

import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/frompromise';
import 'rxjs/add/operator/do';

return Observable.fromPromise(col.insertOne(document))

CircleCI环境中有什么不同导致这个和什么是解决方案?

回答如下:

使用RxJS 5.5+,Observable原型不包含任何静态方法。因此,您需要采用两种方法之一来包含fromPromise(和其他)静态方法。

RxJS v5.5.2是Angular 5的默认依赖版本。


方法1(首选方案)

要使用fromPromise方法,请从rxjs/observable独立导入。

import { fromPromise } from 'rxjs/observable/fromPromise';
let observable = fromPromise(promise);

这种方法有利于减少束大小,因为它只会通过修补Observable原型来导入所需的内容。


方法2(未经优化的方法)

要像以前一样使用静态Observable.fromPromise,您需要从rxjs/Rx导入Observable。

import Rx from 'rxjs/Rx';

此方法将导入整个核心功能集,从而导致更大的捆绑包大小。

发布评论

评论列表(0)

  1. 暂无评论