如何解决获得一个下一个发出的值来解决的承诺
我正在尝试使用自订阅Observable以来发出的第一个值来解决一个诺言。
我首先尝试使用.toPromise()
:
await observable.toPromise()
但这仅在可观察范围内调用observer.complete()
时有效。
take(1)
和first()
也不合适,因为它们只允许将值通过管道传输到其他可观察对象。
此刻,我想出了以下代码:
await new Promise(resolve => {
const subscription = observable.subscribe(data => {
resolve(data)
subscription.unsubscribe()
})
})
是否有我没有使用过的实用程序功能,或者有什么方法可以进一步简化它?
解决方法
您需要使用first
运算符使可观察对象发出第一个值并完成。
await observable.pipe(first()).toPromise()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。