簡體   English   中英

在 Nest.js 中使用 HTTP 在模塊之間進行通信

[英]Communicating between modules using HTTP in Nest.js

我在 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 中,並且調用方法也有一個 await。

您所看到的是一個尚未訂閱的原始可觀察對象,可能是由於返回 promise 而不是返回可觀察對象。 Nest 的 HttpService 默認使用 RxJS 而不是 async/await,但要解決此問題,您可以輕松地在 RxJS ZA8CFDE6331BD59EB2AC96F89111C4 之后添加一個.toPromise() ,而不用擔心訂閱。

作為旁注:有什么理由通過 HTTP 模塊調用 API 而不僅僅是直接調用具有正確值的服務? REST 調用的開銷似乎很大。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM