SBA301 - Chương 5: Gọi API từ client — fetch, Axios và Promise
Cách phía React lấy dữ liệu từ dịch vụ REST: hàm fetch trả về Promise, mặc định dùng phương thức GET, và chuỗi xử lý đúng là then lấy response rồi gọi response.json(). Phần Axios gồm axios.get và axios.post, đặt địa chỉ gốc bằng axios.defaults.baseURL, bắt lỗi bằng catch, các phương thức HTTP mà Axios hỗ trợ, và chọn put hay patch khi cập nhật tài nguyên. Kèm nền tảng bất đồng bộ của JavaScript: khởi tạo Promise và từ khoá await.
Bắt đầu bằng Chế độ học nếu bạn muốn đáp án và giải thích hiện ngay sau mỗi câu — không bấm giờ, dừng lúc nào cũng được. Chọn Thi thử khi muốn biết mình đang ở đâu: có bấm giờ, chấm điểm ở cuối, và giải thích chỉ mở sau khi nộp.
Luyện tập theo chủ đề này
Câu hỏi của chủ đề
asyncpromiseawaitcallbacknew Promise(callback)createPromise(callback)Promise.create(callback)Promise.new(callback)Để tạo một đối tượng Promise mới trong JavaScript, bạn cần sử dụng từ khóa 'new' trước constructor của Promise. Syntax chính xác là 'new Promise(callback)', nơi callback là một hàm bao gồm hai tham số: resolve và reject. Hàm này sẽ được thực thi khi tạo đối tượng Promise. Trong callback, bạn có thể thực hiện các hành động cần thiết và sử dụng các tham số resolve và reject để quản lý trạng thái của Promise. Ví dụ:
const promise = new Promise((resolve, reject) => {
// code here
resolve('Giải quyết được!');
});Tóm lại, 'new Promise(callback)' là syntax chính xác để tạo một đối tượng Promise mới trong JavaScript.
Để xử lý một yêu cầu fetch thành công, chúng ta cần sử dụng hàm then để thực hiện các hành động tiếp theo sau khi dữ liệu được tải về. Trong ví dụ này, chúng ta cần chuyển đổi dữ liệu từ dạng JSON sang dạng dễ đọc hơn bằng cách sử dụng hàm response.json(). Sau đó, chúng ta có thể sử dụng hàm console.log() để in ra dữ liệu đã được chuyển đổi. Vì vậy, câu trả lời đúng là fetch(url).then(response =>
response.json()).then(data => console.log(data));. Câu trả lời này cho phép chúng ta xử lý dữ liệu một cách linh hoạt và dễ dàng.
axios.write('url', data)axios.sendPost('url', data)axios.post('url', data)axios.get('url', data)axios.get('https://api.example.com/data')axios.send('GET', 'https://api.example.com/data')axios.fetch('https://api.example.com/data')fetch.axios('https://api.example.com/data')Để thực hiện một yêu cầu GET sử dụng Axios, bạn cần sử dụng phương thức get() của Axios. Phương thức này chấp nhận một tham số là URL của API mà bạn muốn yêu cầu. Ví dụ, để yêu cầu dữ liệu từ API 'https://api.example.com/data', bạn có thể sử dụng mã sau: axios.get('https://api.example.com/data'). Phương thức này sẽ gửi một yêu cầu GET đến API và trả về dữ liệu trong dạng JSON. Ngoài ra, bạn cũng có thể sử dụng các tham số khác như headers, params để tùy chỉnh yêu cầu của mình. Ví dụ, để thêm một header 'Authorization' với giá trị 'Bearer token', bạn có thể sử dụng mã sau:
axios.get('https://api.example.com/data', {
headers: {
'Authorization': 'Bearer token'
}
}).
Đề có câu hỏi của chủ đề này
2 đề chứa ít nhất một câu thuộc chủ đề — mở đề để làm cả bộ, không chỉ từng câu.