Phiên bản sạch và tiện lợi
Mở rộng trên câu trả lời tuyệt vời của M Fuat NUROĞLU về việc chuyển đổi quan sát thành lời hứa, đây là phiên bản rất tiện lợi của nó.
const value = await observable.toPromise();
console.log(value)
Cái hay của việc này là chúng ta có thể sử dụng giá trị đó như một biến thông thường mà không cần đưa vào một khối lồng nhau khác!
Điều này đặc biệt hữu ích khi bạn cần nhận được nhiều giá trị từ nhiều vật quan sát. Gọn gàng và sạch sẽ.
const content = await contentObservable.toPromise();
const isAuthenticated = await isAuthenticatedObservable.toPromise();
if(isAuthenticated){
service.foo(content)
}
Tất nhiên, bạn sẽ phải thực hiện chức năng chứa của mình async
nếu bạn đi với tuyến đường này. Bạn cũng có thể chỉ .then
là lời hứa nếu bạn không muốn chức năng chứa không đồng bộ
Tôi không chắc chắn nếu có sự đánh đổi với phương pháp này, vui lòng cho tôi biết trong các nhận xét để chúng tôi biết.
PS Nếu bạn thích câu trả lời này, đừng quên nâng cấp câu trả lời của M Fuat NUROĞLU :)