[英]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.