为什么bindCallback不是函数?

时间:2016-09-27 06:30:12

标签: javascript rxjs rxjs5

您好我正在使用此rxjs图书馆。我收到此错误 Rx.Observable.bindCallback不是函数

这是我的代码 http://jsbin.com/tuxucotake/edit?html,js,console,output

我正在从这里阅读文档 http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html

var getJSONAsObservable = Rx.Observable.bindCallback(jQuery.getJSON);
var result = getJSONAsObservable('http://mysafeinfo.com/api/data?list=englishmonarchs&format=json');
result.subscribe(x => console.log(x), e => console.error(e));

2 个答案:

答案 0 :(得分:1)

您正在使用RXJS 4,但您链接的文档是RXJS 5

答案 1 :(得分:0)

基于@Günter Zöchbauer的答案,bindCallback()不再是Observable的一部分,因此当前版本的RxJ(6)的正确用法是:

jsbin

html

<!DOCTYPE html>
<html>
    <head>
      <meta charset="utf-8">
      <meta name="viewport" content="width=device-width">
      <script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/6.5.4/rxjs.umd.min.js"></script>
      <script src="https://code.jquery.com/jquery-2.2.4.js"></script>
      <title>JS Bin</title>
    </head>
    <body>
    </body>
</html>

js

var getJSONAsObservable = rxjs.bindCallback(jQuery.getJSON);
var result = getJSONAsObservable('https://mysafeinfo.com/api/data? list=englishmonarchs&format=json');
result.subscribe(
  ([data,textStatus,jqXhr]) => console.log(data), 
  e => console.error(e));

分别针对节点:

const Rx = require('rxjs')
const {bindCallback} = Rx;
var getJSONAsObservable = bindCallback(jQuery.getJSON);
....