RxJs主体将第一个发出的值解析为承诺
有没有办法通过使用RxJs主体将第一个发出的值解析为承诺,rxjs,Rxjs,有没有办法通过使用toPromise()方法等待主题或BehviourSubject中发出的值? 我试过使用first()操作符,以及take(1)操作符,但似乎没有像我预期的那样工作。 以下内容与我的问题类似: async function testSubjectToPromise() { const sub = new Subject<string>(); sub.next("Hello"); const response = sub.toProm
toPromise()
方法等待主题或BehviourSubject
中发出的值?
我试过使用first()
操作符,以及take(1)
操作符,但似乎没有像我预期的那样工作。
以下内容与我的问题类似:
async function testSubjectToPromise() {
const sub = new Subject<string>();
sub.next("Hello");
const response = sub.toPromise();
console.log("Task added");
const result = await response;
console.log("Task completed");
}
testSubjectToPromise().finally(() => console.log("Done"));
异步函数testSubjectToPromise(){
const sub=新主题();
sub.next(“你好”);
const response=sub.toPromise();
控制台日志(“添加任务”);
const result=等待响应;
console.log(“任务完成”);
}
testSubjectToPromise().finally(()=>console.log(“完成”);
您应该以更合乎逻辑的方式使用它:
const sub = new Subject<string>();
async function testSubjectToPromise() {
console.log("Task added");
const result = await sub.pipe(first()).toPromise();
console.log("Task completed");
return result;
}
testSubjectToPromise().then(x => console.log(x)).finally(() => console.log("Done"));
sub.next("Hello");
async function testSubjectToPromise() {
const sub = new ReplaySubject<string>();
console.log("Task added");
sub.next("Hello");
const result = await sub.pipe(first()).toPromise();
console.log("Task completed");
return result;
}
testSubjectToPromise().then(x => console.log(x)).finally(() => console.log("Done"));