Store.dispatch trong Redux đồng bộ hay không đồng bộ


100

Tôi nhận ra đây là một câu hỏi cơ bản nhưng tôi đã không may mắn tìm được câu trả lời ở nơi khác.

store.dispatchtrong đồng bộ hoặc không đồng bộ Redux?

Trong trường hợp nó không đồng bộ, liệu có khả năng thêm một lệnh gọi lại sau khi hành động đã được truyền như có thể với React?

Câu trả lời:


87

AFAIK, hành động điều động là đồng bộ. Trong trường hợp nếu bạn sẵn sàng giải quyết cuộc gọi không đồng bộ, bạn có thể sử dụng thunk-middleware trong redux, nơi điều hành được cung cấp dưới dạng một hàm gọi lại mà bạn có thể gọi tùy ý. Để biết thêm thông tin, hãy xem câu trả lời này trên SO của chính Tác giả: Làm thế nào để gửi một hành động Redux với thời gian chờ?


67

Không ai biết rõ hơn chính mã . =) Như bạn thấy dispatchlà hoàn toàn đồng bộ. Cảnh báo duy nhất ở đây là cửa hàng enhancerscó thể (và làm) dispatchphương pháp thay thế . Ví dụ, hãy xem tại applyMiddlewareEnhancer , nó cho phép bạn cắm middlewares trong bằng cách thay thế mặc định dispatchphương pháp với thực hiện riêng của nó. Mặc dù tôi chưa bao giờ thấy bất kỳ Redux enhancernào thực sự loại bỏ tính chất đồng bộ của dispatch.


1
Bạn nên cập nhật liên kết áp dụng phần mềm trung gian thành https://github.com/reduxjs/redux/blob/master/src/applyMiddleware.ts#L19 (do di chuyển redux từ js -> ts, tôi không thể thực hiện chỉnh sửa vì nó <6 ký tự). Hoặc, có lẽ bạn nên tham chiếu đến một cam kết khi họ vẫn sử dụng j như trong code itselfliên kết của bạn , điều này sẽ liên kết chết do khía cạnh 'liên kết cố định' của cam kết.
user7413060
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.