Tôi đã sử dụng React, Redux từ vài tháng nay. Một trong những phần khó hiểu nhất của hệ sinh thái là luồng dữ liệu không đồng bộ. Có rất nhiều giải pháp tuyệt vời có sẵn và lựa chọn giải pháp phù hợp cho vấn đề của bạn là phần khó khăn.Sự khác nhau giữa Redux-Thunk và Redux-Promise khi được sử dụng với Axios apis là gì?
Trong ứng dụng của tôi, người tạo hành động hầu như không đồng bộ axios [ajax] gọi đến apis cuối của tôi. Tiêm Redux-Promise như một phần mềm trung gian giải quyết vấn đề luồng dữ liệu không đồng bộ.
Xem xét ứng dụng có thể mở rộng, tôi có thể cần phải chuỗi nhiều cuộc gọi trong trình tạo tác vụ của mình. Tôi nghĩ rằng tôi vẫn có thể sử dụng Redux-Promise như một phần mềm trung gian và điều này sẽ chăm sóc luồng dữ liệu không đồng bộ trong ứng dụng của tôi.
Nói chung, nhóm có khuynh hướng sử dụng Redux-Thunk hơn, điều này khiến tôi cảm thấy cú pháp phức tạp hơn cho vấn đề này. Tôi cần các đề xuất trong việc đánh giá 2 khung công tác này vì hầu hết những người tạo hành động của tôi đều đang thực hiện cuộc gọi (chỉ có lời hứa). Tôi đã thấy rất nhiều cuộc thảo luận về Redux-thunk here. Tôi hiểu cách thức thunk có thể hữu ích. . Nhưng tôi cần làm rõ hơn việc đánh giá Redux-Promise và Redux-Thunk với nhau khi chỉ được sử dụng cho Promises. Phần mềm trung gian nào tốt hơn trong tình huống như vậy và tại sao? Tôi có được lợi ích gì khi sử dụng Redux-Thunk qua Redux-Promise? Hay không có gì?
Cảm ơn bạn đã làm rõ. Như bạn đã đề cập, những người sáng tạo hành động chỉ đang gửi một lời hứa duy nhất cho đến nay và do đó Redux-Promise có vẻ là giải pháp đầy đủ. Nhưng khi bạn nói về Redux-Thunk cung cấp sự kiểm soát nhiều hơn, bạn có nghĩa là nó cung cấp cho bạn một cách để thừa nhận nhà nước và cũng cử hành động khi chúng ta cần? –
@DishantSoni Vâng, chính xác. –
@DanAbramov bạn có thể hiển thị ví dụ về hiển thị một số dữ liệu cho trang không? Tôi có và điểm cuối nhưng không thể làm cho nó hoạt động. Dưới đây là ví dụ về những gì tôi đang cố gắng làm [link] (https://gist.github.com/anthonybrown/5d5d067718161a4a757c55329714be46) –