Promise chỉ là một vật thể để việc lập trình được tiện hơn, không phải là một tính năng mà những phiên bản JS trước không làm được
Lớp là một cái khuôn để tạo các vật thể cho nhanh. Thông thường để tạo một vật thể mới qua một lớp ta dùng thế này:
const xeMáy = new Xe('2 bánh')
const ôTô = new Xe('4 bánh')
const xeTải = new Xe('12 bánh')
// ^ vật thể ^ Lớp
Promise là một vật thể, và nó được tạo ra từ lớp Promise
. Lớp này không nhận đối số là chuỗi như bình thường mà là cả một hàm:
Hàm này sẽ được thực thi ngay khi bạn khai báo mà không cần bạn phải gọi nó thực thi như thông thường:
function hàmBìnhThường(){} // chỉ mới khai báo, chưa thực thi
hàmBìnhThường() // Tới lúc này mới thực thi
const promise = new Promise(hàmThựcThi) // hàmThựcThi() được thực thi ngay tại dòng này
Hàm thực thi này được quy định là có 2 đối số. 2 đối số này đến lượt nó lại là 2 hàm khác. Hàm đầu tiên có tên là
resolve
còn hàm sau thì có tên là reject
:Vật thể promise có 2 thuộc tính là state và result, và 3 phương thức là then, catch, và finally
Vật thể promise
sau khi được tạo ra từ lớp Promise
sẽ có 3 phương thức: then
, catch
, finally
.