gpt4 book ai didi

javascript - Observable toPromise() 获取通过 next() 发送的所有数据

转载 作者:搜寻专家 更新时间:2023-10-30 21:36:24 28 4
gpt4 key购买 nike

我有一个使用 subscriber.next(value) 发送数据的 observable (rxjs)。如果通过 toPromise() 方法将 observable 转换为 promise,如何获取这些数据?这可能吗?或者是否只能通过可观察对象的完整方法获取传递的数据。也许管道中有选项/方法,在转换为 promise 从 next() 获取所有数据之前,将其作为 then() 方法的数据字段中的数组 promise 。

getObservable().toPromise().then(data => {
// data should contain all data sent from observable.next()
console.log('Complete: ', data);
}, error => {
console.log('Error: ', error);
});
  • 当前行为(在这种情况下是预期但不想要的):
    data 包含 observable.complete() 的数据。

  • 想要的行为:
    data 包含所有 observable.next() 的数组。这应该通过选项或管道启用。

Observable.range() 示例:

let observer = Rx.Observable.range(1,5).toPromise().then(data => {
console.log('Completed: ', data);
}, error => {
console.log('Error: ', error);
});

输出:

Completed: 5

通缉:

Completed: [1, 2, 3, 4, 5]

我不确定这是否可能。

最佳答案

Reduce在你做出 promise 之前

const source = Rx.Observable.of(1, 2, 3, 4);
const example = source.reduce((acc,val) => acc.concat(val), []);

example.toPromise().then((data) => {
alert(data);
});

关于javascript - Observable toPromise() 获取通过 next() 发送的所有数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51138917/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com