簡體   English   中英

如果我轉到單獨的函數,RxJS 自定義 Observable 不會觸發

[英]RxJS custom Observable doesn't fire if i move to separate function

目前我正在學習 RxJS,我遇到了一個尷尬的情況,我創建了一個基本的自定義 Observable 來從后端服務中獲取,然后使用管道進行一些鏈接。

我正在 React 上做這個。 在 App.js 中的 useEffect 函數上,我運行了以下代碼:

const http$ = Observable.create(async observer => {
      try {
        const res = await axios("localhost:3001");
        await observer.next(res.data);
        await observer.complete();
      } catch (er) {
        observer.error(er);
      }
    });

    const posts$ = http$.pipe(
      map(posts => posts.map(post => ({ ...post, genre: "Music" })))
    );

    posts$.subscribe(
      posts => console.log(posts),
      noop,
      () => {
        console.log("completed");
      }
    );

現在,當我將 Observable 功能移動到一個單獨的文件並嘗試再次運行時,它不會在奇怪的情況下運行。 它甚至不發出請求,控制台上也沒有顯示任何錯誤。

utils.js 中的函數:

import { Observable } from "rxjs";
import { axios } from "axios";

export const createHttpObservable = url =>
  Observable.create(async observer => {
    try {
      const res = await axios(url);
      await observer.next(res.data);
      await observer.complete();
    } catch (er) {
      observer.error(er);
    }
  });

在某些時候在 App.js 中:

 const http$ = createHttpObservable('localhost:3001');
 const posts$ = http$.pipe(...

有人可以幫我嗎? 因為我覺得我錯過了一些東西。 非常感謝。

最后我發現這是 axios 庫的錯誤導入。 當前的實現沒有任何問題。 非常感謝。

暫無
暫無

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

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