Javascript Обещание для наблюдаемого перевода необходимо - PullRequest
1 голос
/ 25 апреля 2020

Я пытался найти пример, который мог бы пролить свет, но у меня проблемы с переводом с одного на другой. Как можно было бы перевести это Обещание в Javascript Rx js Observable? Я понимаю, что это может быть глупо в реальном мире, но это упражнение больше связано с тем, что я пытаюсь лучше понять Обещания (так как у меня гораздо лучше гр asp Наблюдаемых, чем Обещаний).

edit Я не хочу избавляться от проблемы. Я хочу решить эту проблему, используя исключительно Rx js наблюдаемые. Нулевые обещания или обещания.

    return new Promise((resolve, reject) => {
        setTimeout(() => {
            try {
                const result = fn();
                resolve(result);
            } catch (e) {
                reject(e);
            }
        }, time);
    });
}

promisifyTimeout(1000, () => {
    console.log('hello');
}).then(() => {
    console.log('done!');
}).catch((e) => {
    console.log('the thing failed! call support!');
});

Ответы [ 3 ]

1 голос
/ 25 апреля 2020

Почему бы просто не использовать функцию Rx Js from?

const obs$ = from(promise);
0 голосов
/ 25 апреля 2020

используйте timer:

return timer(time).pipe(map(() => fn()))

на самом деле должно быть все, что вам нужно.

0 голосов
/ 25 апреля 2020
const observable = new Observable(subscriber => {
  setTimeout(() => {
    try {
      const result = fn();
      subscriber.next(result);
      subscriber.complete();
    } catch (e) {
      subscriber.error(e);
    }
  }, 500);
});

observable.subscribe(console.log);

Подробнее здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...