为什么bindCallback不是一个函数

why bindCallback is not a function?

本文关键字:一个 函数 bindCallback 为什么      更新时间:2023-09-26

嗨,我正在使用这个rxjs库。我得到这个错误Rx.Observable.bindCallback不是一个函数

是我的代码http://jsbin.com/tuxucotake/edit?html, js、控制台、输出

我正在阅读这里的文档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));

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

根据@ g nter Zöchbauer的回答,bindCallback()不再是Observable的一部分,所以当前版本的RxJs(6)的正确用法是:

jsbin

<!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);
....