我在 Nest.js 中有 2 个模块,我们称它们为 Module1 和 Module2。 Module1 的端点为/api/module1,Module2 的端点为/api/module2。我正在尝试从 Module1 调用 Module2,如下所示
return await this.httpService
.post(url, data1, {
headers: header
})
.pipe(
map(res => {
return res.data;
}),
);
这里的 url 是/api/module2,data1 是我传递的参数。当我调用电话时,这就是我看到的
{"_isScalar":false,"source":{"_isScalar":false},"operator":{}}
当 promise 在完全完成之前返回时,我通常会看到此错误。不知道在这里要做什么不同的事情。调用此 httpService 的方法包含在 async 中,并且调用方法也有一个等待。
最佳答案
您看到的是一个尚未订阅的原始可观察值,可能是由于返回了 promise 而不是返回可观察值。 Nest 的 HttpService 默认使用 RxJS 而不是 async/await,但要解决此问题,您可以轻松地在 RxJS 对象后面添加 .toPromise()
,而不必担心自己的订阅。
顺便说一句:有什么理由通过 HTTP 模块调用 API,而不是直接使用正确的值调用服务? REST 调用的开销似乎很大。
关于javascript - 在 Nest.js 中使用 HTTP 在模块之间进行通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62565261/