chào các bạn
khi mình post orderItem cái màu xanh bên phải.
mình đang không hiểu, vì sao mình nhận được 1 mảng promise orderItemsIDlist, khi mà bên trong dòng 21 mình đã await nó rồi- tức là chương trình chờ dóng đó thực thi song? mình không hỏi cách khắc phục vì cách khắc phục là dùng promiseALl, mình chỉ hỏi vì sao mình nhận được mảng promise đó!
cảm ơn các bạn.
Tại sao kết quả nhận được là mảng các promise, khi chỉ return kiểu number?
Return value
A new array with each element being the result of the callback function.
callback function lúc này là một async function, khi chạy async funtion hiển nhiên trả về promise
Bạn ơi bên trong hàm async luôn có await, tức là chờ thực thi song thì thực thi tiếp, vậy là có kết quả, vậy tại sao họ thiết kế hàm async luôn return 1 promise để làm gì ạ?
const a = some_async_function();
const b = await some_async_function();
a lúc này là promise, b lúc này là kết quả sau khi chạy xong
concept của hàm map là mỗi element của mảng mới chính là giống như a, chỉ gọi thôi chứ không await
còn vì sao thiết kế async trả về promise ư, bạn học js tới nơi tới chốn rồi hãy đặt thắc mắc
non-blocking, event-loop, event-driven…
còn rất nhiều keywork hay ho để tìm hiểu
“concept của hàm map là mỗi element của mảng mới chính là giống như a, chỉ gọi thôi chứ không await”
đoạn này bạn nói ko rõ ràng về cú pháp nên mình ko hiểu bạn nói gì
Hàm sử dụng keyword async
là hàm bất đồng bộ, hàm trả về Promise<kết quả> cho dù bạn không viết gì mà phải cần tới async API
trong thân hàm cả;
async function a() {
return 1;
}
sẽ tương đương:
function a() {
return new Promise((resolve) => {
resolve(1);
});
}
bạn thấy biến a
và b
như ví dụ bên trên không? có khác gì nhau không? cả 2 đều là gọi hàm
async...await
chẳng qua là để tránh sử dụng Promise.prototype.then
thôi