我试图找到一个可以说明问题的例子,但是我遇到了从一个例子转换到另一个例子的问题。将这个Promise转换成 Javascript Rxjs Observable的好方法是什么?我意识到在现实世界中这样做可能很愚蠢,但是此练习更多地是关于我尝试更多地了解Promises(因为我对Proserves的理解要比对Promises的掌握要好得多。)
编辑:我不想让自己陷入困境。我想通过专门使用Rxjs observables解决此问题。零承诺或涉及的承诺。
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!');
});
答案 0 :(得分:1)
为什么不仅仅使用来自功能的RxJ?
const obs$ = from(promise);
答案 1 :(得分:0)
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);
更多信息here。
答案 2 :(得分:0)
使用timer
:
return timer(time).pipe(map(() => fn()))
实际上应该就是您所需要的。