RxJS forkjoin没有运行

时间:2017-05-28 20:06:54

标签: javascript node.js rxjs observable reactive-programming

我试图通过rx-http-request使用RxJS从NodeJS服务器查询第三方API。从长远来看,我想使用RxJS来处理一些更有趣的错误情况。但是暂时我遇到了一个相当简单的问题。

案例1(这有效):

third_party.js
import {RxHttpRequest} from 'rx-http-request'
export default ((name) => RxHttpRequest.get(`www.third.party.com/${name}`)

然后,

   import third from './third_party'
   third('bob').subscribe(console.log)

案例2(这不是)

   import third from './third_party'
   import Rx from 'rx'
   Rx.Observable.forkJoin(third('bob')).subscribe(console.log)

案例1打印(正确的)第三方响应。案例2似乎根本没有运行。当我打印出console.log(Rx.Observable.forkJoin)时,它会打印Function,例如事实上,我已经包含了Rx的正确部分。

案例3: 在第三方:

export default ((name) => RxHttpRequest.get(`www.third.party.com/${name}`).map((res)=>console.log(res))

内部console.log触发,但外部订阅不会。 为什么会发生这种情况?我怎样才能将值实际发送到外部订阅?

1 个答案:

答案 0 :(得分:1)

如果您要导入npm install --save rx-http-request ,请执行以下操作:

@akanass/rx-http-request

你可能安装得像这样:

npm install --save @akanass/rx-http-request

import { RxHR } from '@akanass/rx-http-request';

您可能没有注意到此警告消息:

  

npm WARN已弃用rx-http-request@1.2.0:此软件包已不再维护,并已移至@ akanass / rx-http-request。

该版本(1.2.0)远远落后于GitHub仓库(2.3.0)中的版本。

尝试使用rx-http-request,而不是:

rxjs

导出似乎已更改,因此您应参阅docs

此外,您应该谨慎使用rxjs,因为它包含<?php $array1 = Array('zaid','zaid','ali','khan','khan','zaid','jhone','jhone'); foreach($array1 as $array) { echo "<span class='$array'>$array</span>"; } ?> 作为dependency,而不是对等依赖项。这样就可以安装多个<style> .zaid { background-color:#ddd; } .ali { background-color:#E55; } .khan { background-color:#099; } .jhone { background-color:#055; } </style> 软件包(取决于版本和安装顺序)。我鼓励你raise an issue将它改为对等依赖。