RxJS + Node.js Http请求

cho*_*Bao 0 javascript httprequest reactive-programming node.js rxjs

Nodejs服务器端实现:如何使用https://www.npmjs.com/package/requesthttps://www.npmjs.com/package/rx一起向https://www.reddit.com/发出GET请求r/javascript.json

目标:无论何时我正在使用的网站api url都有数据更改,我都会尝试实现持续流式处理.

Ski*_*ppy 5

遗憾的https://www.reddit.com/r/javascript.json是,更新后您将无法接收更新,因为他们无法将此信息推送到客户端.

像Github这样的服务会让你注册一个webhook可以将数据推送到服务器端点的服务.我不确定Reddit是否支持这一点.

作为替代解决方案,并在AkkarinZA在其答案中所说的基础上,您可以使用类似于以下内容的方式轮询json文档:

var fetchContent = function(url) {
    return rx.Observable.create(function (observer) {
        request(url, function (error, response, body) {
            if (error) { observer.onError(); }
            else { observer.onNext({response: response, body: body }); }
            observer.onCompleted();
        })
    });
};

rx.Observable.interval(1000)
    .map(function() { return 'https://www.reddit.com/r/javascript.json' })
    .flatMap(fetchContent)
    .map(/* do something */)
    .subscribe();
Run Code Online (Sandbox Code Playgroud)

像这样的轮询不是一个好方法.