【问题标题】:Unsubscribe observable in nodejs在nodejs中取消订阅observable
【发布时间】:2019-04-08 09:13:12
【问题描述】:

我正在使用request-promise-native 在我的 Node.js 应用程序中发出 http 请求。我想将其转换为 RxJS 可观察对象,但我不知道如何取消订阅。有什么有效的方法来做到这一点?

public getResponse(req: Request, res: Response) {
    const url = config.url;

    var options = {
        uri: `${url}`,
        body: JSON.stringify(providerResponse),
        method: 'POST',
        headers: {
            'Content-Type': 'application/json'
        }
    };

    const responseObs = from(request(options)); // convert promise to observable using from

    responseObs.subscribe(response => {
        res.setHeader('content-type', 'application/json');
        res.send(response)
    }, error => {
        console.error(error)
    })
};

【问题讨论】:

  • 你应该返回responseObs.subscribe(...)
  • 如果我返回订阅。这会自动退订吗?

标签: node.js promise rxjs observable


【解决方案1】:

from 将 Promise 转换为发出单个值并在完成 Promise 时完成的可观察对象。代码已经可用,无需取消订阅已完成的 observable。

【讨论】:

  • 好的。感谢您提供的重要信息。我需要在转换过程中进行错误处理吗const responseObs = from(request(clientServerOptions).catch(error => { console.error(error) }));
  • 没有。如果你抑制错误,subscribe 成功回调将被调用,undefined 作为响应。至于这个例子,observables 在这里根本没有用处。它们只是阻止你使用 async/await。
猜你喜欢
  • 2020-08-29
  • 2019-03-19
  • 1970-01-01
  • 1970-01-01
  • 2018-12-12
  • 2016-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多