Создать наблюдаемый из конструктора класса asyn c - PullRequest
0 голосов
/ 10 марта 2020

Итак, у нас есть конструктор класса asyn c, подобный этому

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, чтобы получить возвращенный результат конструктора. Используется касание, чтобы увидеть, когда конструктор asyn c когда-либо генерирует. Это не.

Любая помощь?

1 Ответ

0 голосов
/ 10 марта 2020

Так что проблема была в Rx. js 5 против 6.

В Rx нет fromPromise. js 6.

Это правильный путь, спасибо за комментарии

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