Cách sử dụng Observables với Vanilla JavaScript

Không sử dụng khuôn khổ nào, chỉ sử dụng JavaScript đơn thuần.

Trong khi làm việc trên một dự án phụ chỉ để giải trí, tôi muốn viết một đoạn mã JavaScript để gọi một API REST và cuối cùng thực hiện một số nội dung thú vị trên một trang web. Nó hoàn toàn là JavaScript đơn giản, không có khuôn khổ ưa thích hoặc thậm chí là các thư viện được sử dụng.

Đầu tiên, tôi nghĩ đến việc sử dụng Promises cho các cuộc gọi của mình và điều này thật dễ dàng đối với tôi. Tôi đã làm điều đó rất nhiều lần. Tuy nhiên, sau đó nó ảnh hưởng nặng nề đến tôi - tại sao tôi không sử dụng Observables? Tôi biết rằng JavaScript gốc không hỗ trợ Observables. Nhưng tôi không thể tự mình thực hiện nó? Và đó là những gì tôi đã làm.

Đây là cách tôi nghĩ mọi thứ thông suốt

  1. Bản thân Observable sẽ thuộc một loại đối tượng mới được gọi là Subject.
  2. Đối tượng Chủ đề này sẽ hiển thị các chức năng subscribevà next.
  3. subscribe nên được các nhà quan sát kêu gọi đăng ký vào dòng dữ liệu có thể quan sát được.
  4. nextnên được chủ sở hữu Chủ đề gọi để đẩy / xuất bản dữ liệu mới bất cứ khi nào có sẵn.
  5. Ngoài ra, tôi muốn chủ sở hữu Đối tượng có thể biết bất cứ khi nào không có người quan sát nào quan tâm đến dữ liệu của nó. Điều này sẽ cho phép các Chủ đề chủ sở hữu quyết định nếu anh vẫn muốn để có được các dữ liệu hay không.
  6. Ngoài ra, các đề chủ sở hữu sẽ có thể biết bất cứ khi nào có ít nhất một người quan sát bắt đầu trở nên quan tâm đến dữ liệu của nó. Điều này sẽ cung cấp cho các đề chủ sở hữu kiểm soát nhiều hơn về dòng chảy dữ liệu của nó và bất kỳ hoạt động liên quan.
  7. Bây giờ trở lại với người quan sát . Ông sẽ có thể bỏ đăng ký từ các Chủ đề bất cứ lúc nào.
  8. Điều này dẫn chúng ta đến một loại đối tượng mới được gọi là Đăng ký.
  9. Đối tượng Đăng ký này sẽ hiển thị một unsubscribechức năng.
  10. unsubscribenên được gọi bởi người quan sát bất cứ khi nào anh ta muốn dừng nghe luồng dữ liệu đến từ Đối tượng .

Thực hiện

Đăng ký

Lưu ý rằng Đăng ký chỉ thông báo Chủ đề khi unsubscribechức năng được gọi.

Chủ thể

Ở đâu đó trong Chủ đề

Một nơi nào đó trong Observer

Vậy đó, mọi thứ diễn ra như một cái duyên và tôi tự hào về những gì mình đạt được.

Vì vậy, điểm mấu chốt là viết mã trong JavaScript vani không phải lúc nào cũng bằng viết mã nhàm chán, bạn có thể làm cho nó thú vị hơn nhiều. :)

Hy vọng bạn thấy việc đọc câu chuyện này cũng thú vị như tôi đã viết nó.

Nội dung khác tại plainenglish.io

Suggested posts

Tìm kiếm thông tin về tên miền

Đoạn trích từ Small, Sharp Software Tools của Brian P. Hogan

Tìm kiếm thông tin về tên miền

Khi bạn gửi yêu cầu tới facebook.com, máy tính của bạn sẽ tra cứu tên miền để dịch tên miền đó thành địa chỉ IP để máy tính của bạn có thể thực hiện kết nối đó.

Tôi đã chuyển từ Toán sang CS như thế nào

Tôi đã chuyển từ Toán sang CS như thế nào

Quá trình nhập học mùa thu năm 2023 sắp kết thúc và việc hoãn/từ chối đang diễn ra. Xin chúc mừng nếu bạn đã được nhận vào chương trình mơ ước của mình tại UW.

Related posts

Tại sao một số dịch giả tự do đang giả mạo cuộc sống của họ

Tại sao một số dịch giả tự do đang giả mạo cuộc sống của họ

Gần đây, tôi đã truy cập Linkedin, mạng xã hội chuyên nghiệp lớn nhất thế giới và tìm thấy các bài đăng của các nhà thiết kế tự do mà tôi theo dõi, những người đã thu hút sự chú ý của tôi. Tất cả họ đều đăng ảnh chụp từ máy bay, trên bãi biển với máy tính xách tay của họ, từ bể bơi và văn phòng với những khung cảnh tuyệt vời.

Điều gì làm cho một podcast có ảnh hưởng?

Điều gì làm cho một podcast có ảnh hưởng?

Tuần trước, tôi nhận thấy một thông cáo báo chí, được gửi qua PressGazette (một trang web tin tức truyền thông của Anh). Bài báo thông báo rằng Acast, công ty quảng cáo và lưu trữ podcast của Scandi, sẽ lãnh đạo một tập đoàn gồm các nhà xuất bản “có lẽ là có ảnh hưởng nhất” trong lĩnh vực podcasting.

Thử thách đọc Goodreads là độc hại

Thử thách đọc Goodreads là độc hại

Tay tôi ngứa ngáy lan rộng khi tôi mặc cả với người bán sách địa phương để mua một cuốn sách khác. Cuốn sách này giống như những cuốn còn lại mà tôi đã mua gần đây sẽ lên ngôi trong đống 'Cần đọc' (TBR) của tôi; tuy nhiên, tôi đã mua nó.

Cách cứu hành tinh và kiếm tiền

Cách cứu hành tinh và kiếm tiền

Đã bao nhiêu lần bạn vứt bỏ chai nhựa, lọ thủy tinh, lon nhôm hay gói năng lượng xanh mà không cần suy nghĩ kỹ? Đã bao nhiêu lần bạn ước mình có thể nhận được thứ gì đó để đổi lại việc tái chế chúng? Nếu bạn giống như hầu hết mọi người, câu trả lời có lẽ là nhiều lần. Tái chế thường được coi là một rắc rối, một công việc vặt hoặc một nhiệm vụ không mang lại bất kỳ lợi ích tức thời hoặc hữu hình nào.