Dưới đây là sự khác biệt giữa Promise
, Callback
, và Async/Await
trong JavaScript với hướng dẫn chi tiết về cách sử dụng chúng.
Callback là một hàm được truyền vào một hàm khác như một đối số và được gọi khi hàm đó hoàn thành công việc của nó. Đây là cách cũ để xử lý bất đồng bộ trong JavaScript.
pending
catch
để xử lý lỗi.Async/Await
là một cú pháp mới trong JavaScript được giới thiệu trong ES2017 (ES8) giúp làm việc với Promise dễ dàng hơn. async
đánh dấu một hàm là bất đồng bộ và await
chờ Promise hoàn thành.
function doSomething() { return new Promise((resolve, reject) => { setTimeout(() => { console.log('Đã hoàn thành công việc'); resolve(); // gọi resolve khi công việc hoàn thành }, 1000); }); } async function run() { try { await doSomething(); // chờ Promise hoàn thành console.log('Async/Await đã được hoàn thành'); } catch (error) { console.log('Có lỗi xảy ra: ', error); } } run();
.then
, bạn viết mã theo cách đồng bộ.try/catch
để xử lý lỗi giống như trong mã đồng bộ.then
và catch
..then
, có thể vẫn gây khó khăn khi lồng nhau nhiều.Hy vọng hướng dẫn này giúp bạn hiểu rõ hơn về các cách xử lý bất đồng bộ trong JavaScript! Nếu bạn có thêm câu hỏi hoặc cần thông tin chi tiết hơn, đừng ngần ngại hỏi nhé.