Ví dụ thực tế về hàm async trả về Boolean
💡 Giới thiệu
Lý thuyết có thể nhàm chán. Hãy xem một điều thực tế: người dùng đã đăng nhập hay chưa? Đó là một giá trị Boolean đơn giản, nhưng trong các ứng dụng hiện đại, nó thường là async.
🧠 Bối cảnh
- Phiên bản đồng bộ hoạt động nếu thông tin có sẵn ngay lập tức.
- Nhưng trong thực tế, bạn sẽ kiểm tra thông tin từ máy chủ hoặc token →
async.
Ví dụ
typescript
// Phiên bản đồng bộ
function isUserLoggedIn(): boolean {
return true;
}
// Phiên bản async
async function isUserLoggedIn(): Promise<boolean> {
const response = await fetch("/api/check-login");
const data = await response.json();
return data.loggedIn;
}
// Phiên bản Arrow
const isUserLoggedIn = async (): Promise<boolean> => {
const response = await fetch("/api/check-login");
const data = await response.json();
return data.loggedIn;
};
💡 Ví dụ thực tế:
Kiểm tra đăng nhập trong các ứng dụng như Gmail, Slack hoặc bảng điều khiển ngân hàng thường là async vì chúng phụ thuộc vào token hoặc các cuộc gọi API.
Ngay cả khi hiện tại bạn trả về true, việc giữ nguyên hàm ở dạng async sẽ giúp mã của bạn luôn sẵn sàng khi bạn chuyển sang sử dụng API.
Thực hành tốt nhất
- Sử dụng async/await: Điều này giúp mã của bạn dễ đọc hơn và dễ dàng xử lý lỗi hơn.
- Kiểm tra lỗi: Luôn xử lý các lỗi có thể xảy ra khi gọi API để cải thiện trải nghiệm người dùng.
Những cạm bẫy phổ biến
- Quá nhiều cuộc gọi API: Nên tối ưu hóa số lần gọi API để tránh làm chậm ứng dụng.
- Không xử lý lỗi: Nếu không xử lý các lỗi từ API, ứng dụng của bạn có thể gặp sự cố.
Mẹo hiệu suất
- Caching: Sử dụng caching để giảm thiểu số lần gọi API cần thiết cho các thông tin mà người dùng thường xuyên yêu cầu.
- Debounce: Sử dụng debounce cho các cuộc gọi API liên quan đến nhập liệu để giảm bớt khối lượng công việc cho máy chủ.
Xử lý sự cố
- Không nhận được phản hồi từ API: Kiểm tra địa chỉ URL và đảm bảo máy chủ đang hoạt động.
- Dữ liệu trả về không đúng định dạng: Kiểm tra định dạng phản hồi của máy chủ và chắc chắn rằng nó trả về dữ liệu mà bạn mong đợi.
FAQs
- Tại sao phải sử dụng async trong hàm kiểm tra đăng nhập?
- Bởi vì thông tin đăng nhập thường được lấy từ máy chủ qua API, điều này cần thời gian và không thể thực hiện đồng bộ.
- Có nên sử dụng Promise.all cho nhiều hàm async không?
- Có, điều này giúp thực hiện nhiều yêu cầu đồng thời và tiết kiệm thời gian.
Kết luận
Việc sử dụng hàm async cho các chức năng như kiểm tra đăng nhập là một phương pháp hiện đại và hiệu quả trong phát triển ứng dụng. Hãy đảm bảo rằng mã của bạn sẵn sàng cho sự thay đổi trong tương lai và tối ưu hóa hiệu suất bằng cách áp dụng các thực hành tốt nhất. Nếu bạn có bất kỳ câu hỏi nào, hãy để lại câu hỏi bên dưới!