Làm thế nào mà whenComplete()
khác biệt so với then()
trong Future
?
Làm thế nào mà whenComplete()
khác biệt so với then()
trong Future
?
whenComplete()
và then()
là hai phương thức được sử dụng trong lập trình bất đồng bộ với Future
trong Dart, nhưng chúng có những đặc điểm khác biệt.
then()
là phương thức cho phép bạn đăng ký một callback sẽ được thực thi khi Future
hoàn thành. Callback này có thể truy cập vào dữ liệu được trả về từ Future
nếu nó hoàn thành mà không có lỗi. Nếu Future
hoàn thành với lỗi, bạn có thể cung cấp một callback onError
để xử lý lỗi đó[9].
whenComplete()
, mặt khác, là phương thức cho phép bạn đăng ký một hành động sẽ được thực hiện sau khi Future
hoàn thành, bất kể kết quả là thành công hay thất bại. Đây là tương đương với khối finally
trong cấu trúc try-catch-finally, nơi mà mã sẽ được thực thi dù cho có lỗi xảy ra hay không. Nếu hành động trong whenComplete()
ném ra một lỗi, hoặc trả về một Future
khác mà sau đó hoàn thành với lỗi, Future
trả về từ whenComplete()
cũng sẽ hoàn thành với lỗi đó. Giá trị trả về từ hành động trong whenComplete()
luôn luôn bị bỏ qua[8][11].
Ví dụ, nếu bạn muốn thực hiện một số dọn dẹp hoặc giải phóng tài nguyên sau khi một `...
middle
Gợi ý câu hỏi phỏng vấn
Chưa có bình luận nào