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:

const promise = new Promise(hàm)
//    ^ vật thể     ^ Lớp

Hàm này được quy định có 2 đối số có tên là resolvereject:

function hàm(resolve, reject) {} 

Vật thể promise sau khi được tạo ra từ lớp Promise sẽ có 3 phương thức: then, catch, finally.

fetch("https://jsonplaceholder.typicode.com/todos/1")
.then(res => res.json())
.then(d => console.log(d))

Phương thức cho ta biết mình có thể làm gì với vật thể đó