从异步类构造函数创建可观察

时间:2020-03-10 13:18:45

标签: javascript rxjs rxjs6

所以我们有一个像这样的异步类构造器

class Task {
    constructor(name, url) {
        return (async () => {
             this.name = name;
             this.response = await fetch(url);
             return this;             
        })();
    }
}

然后我们要在这样的可观察链中使用它

Observable.of({name: "Task1", url: "http://example.com"})
    .pipe(
        switchMap(item =>
            fromPromise(new Task(item.name, item.url)),
            (item, task) => ({item, task})
        )
    ).subscribe();

构造函数按预期运行。我已经尝试过fromPromise和defer,以获得构造函数的返回结果。用tap查看异步构造函数是否发出过。不会。

有帮助吗?

1 个答案:

答案 0 :(得分:0)

所以问题出在Rx.js 5 vs 6。

Rx.js 6中没有fromPromise。

这是正确的方法,感谢您的评论

 {
            "balance": 2430.87,
            "quantity": 11,
            "name": "Skinner Ward",
            "gender": "male",
            "company": "GROK",
            "state": "New Jercy"
        },
        {
            "balance": 3192.7,
            "quantity": 15,
            "name": "Gwen Dixon",
            "gender": "female",
            "company": "ICOLOGY",
            "state": "Vetaikan"
        },
        {
            "balance": 1663.84,
            "quantity": 14,
            "name": "Deena Gillespie",
            "gender": "female",
            "company": "OVERPLEX",
            "state": "New Jercy"
        }