Tôi đã có một TypeScript/Angular 2 Observable hoạt động hoàn hảo trong lần đầu tiên tôi gọi nó. Tuy nhiên, tôi quan tâm đến việc gắn nhiều người đăng ký với cùng một người quan sát và bằng cách nào đó làm mới những người có thể quan sát được và những người đăng ký đính kèm. Dưới đây là những gì tôi đã có:Làm thế nào để khởi động lại hoặc làm mới một Observable?
query(): Rx.Observable<any> {
return this.server.get('http://localhost/rawData.json').toRx().concatMap(
result =>
result.json().posts
)
.map((post: any) => {
var refinedPost = new RefinedPost();
refinedPost.Message = post.Message.toLowerCase();
return refinedPost;
}).toArray();
}
Hình ảnh có nút quan sát được khi được nhấn, thực hiện lại điều này và mọi người đăng ký được kết nối với nó sẽ nhận được tập dữ liệu cập nhật.
Tôi làm cách nào để thực hiện việc này?
Cảm ơn câu trả lời. Nó tốt, nhưng nó làm cho một giả định rằng tôi không chắc chắn về: rằng tôi đang trực tiếp chụp nút bấm. Trong thực tế, trình xử lý nhấn nút nằm trong một lớp khác với công việc quan sát được. Tôi muốn có thể khởi động một bản cập nhật của quan sát chỉ với một cuộc gọi hàm. FWIW, tôi đã có thể làm những gì tôi muốn với một Chủ đề, nhưng tôi tự hỏi nếu có cách nào để làm điều đó với "thẳng" – kenstone
Có bạn có thể thay thế 'Rx.Observable.fromEvent (button,' click ') ' theo chủ đề của bạn. Đôi khi bạn có thể sử dụng 'Rx.Observable.create' thay cho một chủ đề, bao bọc việc tạo người nghe bên trong nó, và trả về một lần để loại bỏ người nghe - nhưng không nhìn thấy mã của bạn tôi không biết nếu nó có thể hay không. Vui mừng nó làm việc mặc dù. Không có gì sai khi sử dụng một chủ đề khi không có tùy chọn tốt hơn có sẵn ví dụ khi bạn không/không thể có nguồn sự kiện trong phạm vi. BTW, một số hướng dẫn SO: nếu câu trả lời là tốt cho bạn, bạn nên chấp nhận nó. – user3743222