Redis
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> Redis

Kiểm soát sự cố luồng với nút / redis và gọi lại?

Tôi không hiểu tại sao client.smembersclient.get (Redis lookups) cần phải là các lệnh gọi lại thay vì chỉ đơn giản là các câu lệnh - nó làm cho cuộc sống trở nên rất phức tạp.

Đó là những gì Node là. (Tôi khá chắc rằng chủ đề này đã được thảo luận nhiều lần ở đây, hãy xem qua các câu hỏi khác, nó chắc chắn ở đó)

Làm cách nào tôi có thể chắc chắn rằng tất cả các tra cứu đã được thực hiện trước khi gọi socket.broadcast ?

Đó là những gì err cho trong chức năng gọi lại. Đây là tiêu chuẩn của kinda Node - tham số đầu tiên trong lệnh gọi lại là đối tượng lỗi (null nếu mọi thứ tốt). Vì vậy, chỉ cần sử dụng một cái gì đó như thế này để đảm bảo không có lỗi nào xảy ra:

if (err) {
  ...    // handle errors.
  return // or not, it depends.
}

... // process results

Nhưng điều này có vẻ rất lộn xộn.

Bạn sẽ quen với nó. Tôi thực sự thấy nó hay, khi mã được định dạng tốt và dự án được cấu trúc thông minh.

Các cách khác là:

  • Sử dụng thư viện để kiểm soát luồng mã không đồng bộ (Async.js, Step.js, v.v.)
  • Nếu mã kiểu mì spaghetti là những gì bạn nghĩ là lộn xộn, hãy xác định một số hàm để xử lý kết quả và chuyển chúng dưới dạng tham số thay vì ẩn danh.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cách tạo hình ảnh docker từ kho lưu trữ github

  2. Ubuntu 16.04 systemd redis sự cố với ulimit

  3. redis HLL quá nhiều dương tính giả

  4. Redis, Node.js và Socket.io:Xác thực máy chủ chéo và hiểu node.js

  5. Redis có duy trì dữ liệu không?