Rx fromPromise不承认那么作为一个函数?

时间:2016-02-24 18:09:58

标签: reactjs rxjs

我正在尝试在rx-lite组件中使用react。我正在传递Rx.Observable.fromPromise axios个http请求。 axios会返回promise,因此应找到.then。这是我的组件。

export default class Home extends Component {
    constructor(props) {
        super(props);
        this.state = {
            results: []
        }
        this.handleOnBlur = this.handleOnBlur.bind(this);
        this.handleOnBlurDebounced = this.handleOnBlur.debounce(250, false);
        this.getResults = this.getResults.bind(this);
    }

    componentDidMount() {
        this.subscription = Rx.Observable.fromPromise(this.getResults)          
            .map(res => this.setState({
                results: res.data.return
            }));
    }

    componentWillUnmount() {
        this.subscription.dispose();
    }

    getResults() {
        return axios.get('/results');
    }

    handleOnBlur() {
        this.subscription.forEach();
    }

    render() {
      ...
    }
}

在我的componentDidMount中,我致电this.getResults。我收到了这个错误。

Uncaught TypeError: this._p.then is not a function

如果我使用this.getResults(),它会拨打电话,但不会懒惰。我需要做些什么才能使其发挥作用?

1 个答案:

答案 0 :(得分:3)

  

在我的componentDidMount中,我调用this.getResults

不,如果您没有使用this.getResults(),则不会调用它。 fromPromise接受了承诺,而不是你传递的承诺返回函数。