Promise là một lời hứa xử lý một vấn đề nào đó.Promise là một đối tượng xử lý Bất đồng bộPromise là một Object Constructor được cập nhật JavaScript từ phiên bản ECMAScript-06 (năm 2015)new Promise đơn giản từ một Object Constructor Promise có sẵn theo cấu trúc sau:var newPromise = new Promise(
// Executor : Khối lệnh xử lý trước khi gán cho đối tượng newPromise
function (resolve, reject) {
//Logic: Xử lý Logic
// 1. Thành công/Xử lý: resolve()
// 2. Thất bại/Từ chối: reject()
}
);
newPromise.then().catch().finally();
newPromise
.then(function () {
console.log("Successfully!");
})
.catch(function () {
console.log("Failure!");
})
.finally(function () {
console.log("Done!");
});
thành công thì callback sẽ thực thi khối lệnh ở phương thức .then()từ chối thì callback sẽ thực thi khối lệnh ở phương thức .catch() - bắt lỗi/bẫy lỗi, ở đây có thể thông báo message lỗi cho người dùng.Loading xử lý, khi kết thúc Promise thì tắt biểu tượng Loading này đi.Memory LeakPending() đang xử lý.var newPromise = new Promise((resolve, reject) => {
console.log("Xử lý Promise!");
// resolve()
// reject()
});
setTimeout(() => {
console.log(newPromise);
}, 1000);

var newPromise = new Promise((resolve, reject) => {
console.log("Xử lý Promise!");
resolve()
// reject()
});
setTimeout(() => {
console.log(newPromise);
}, 1000);
newPromise
// .then(function () {
// console.log("Successfully!");
// })
.catch(function () {
console.log("Failure!");
})
.finally(function () {
console.log("Done!");
});

var newPromise = new Promise((resolve, reject) => {
console.log("Xử lý Promise!");
resolve()
// reject()
});
setTimeout(() => {
console.log(newPromise);
}, 1000);
newPromise
.then(function () {
console.log("Successfully!");
})
.catch(function () {
console.log("Failure!");
})
.finally(function () {
console.log("Done!");
});

var newPromise = new Promise((resolve, reject) => {
console.log("Xử lý Promise!");
// resolve()
reject()
});
setTimeout(() => {
console.log(newPromise);
}, 1000);
newPromise
.then(function () {
console.log("Successfully!");
})
// .catch(function () {
// console.log("Failure!");
// })
.finally(function () {
console.log("Done!");
});

Uncaught (in promise) undefined nghĩa là chưa xử lý bắt lỗi Reject bị thiếu.var newPromise = new Promise((resolve, reject) => {
console.log("Xử lý Promise!");
// resolve()
reject();
});
setTimeout(() => {
console.log(newPromise);
}, 1000);
newPromise
.then(console.log("Successfully!"))
.catch(console.log("Failure!"))
.finally(console.log("Done!"));

var newPromise = new Promise((resolve, reject) => {
console.log("Xử lý Promise!");
// resolve()
reject()
});
setTimeout(() => {
console.log(newPromise);
}, 1000);
newPromise
.then(function () {
console.log("Successfully!");
})
.catch(function () {
console.log("Failure!");
})
.finally(function () {
console.log("Done!");
});

var newPromise = new Promise((resolve, reject) => {
console.log("Xử lý Promise!");
// resolve()
reject()
});
setTimeout(() => {
console.log(newPromise);
}, 1000);
newPromise
.then(
function (resolve){
console.log("Successfully!");
},
function (error){
console.log("Error!")
}
)
.catch(function () {
console.log("Failure!");
})
.finally(function () {
console.log("Done!");
});

var newPromise = new Promise((resolve, reject) => {
console.log("Xử lý Promise!");
// resolve()
reject();
});
setTimeout(() => {
console.log(newPromise);
}, 1000);
newPromise
.then(
(resolve) => console.log("Successfully!"),
(error) => console.log("Error!")
)
.catch(() => console.log("Failure!"))
.finally(() => console.log("Done!"));

var newPromise = new Promise((resolve, reject) => {
console.log("Xử lý Promise!");
// resolve()
reject();
});
setTimeout(() => {
console.log(newPromise);
}, 1000);
newPromise
.then(
(resolve) => console.log("Successfully!"),
(error) => console.log("Error!")
).catch(console.log("Failure!"))
.finally(() => console.log("Done!"));

var newPromise = new Promise((resolve, reject) => {
console.log("Xử lý Promise!");
// Fake API data Promise
resolve("Học lập trình Javascript!!!")
});
setTimeout(() => {
console.log(newPromise);
}, 1000);
newPromise
.then(function (data) {
console.log("Successfully: ", data);
})
.catch(function () {
console.log("Failure!");
})
.finally(function () {
console.log("Done!");
});

var newPromise = new Promise((resolve, reject) => {
console.log("Xử lý Promise!");
// Fake API data Promise
resolve([
{
id: 1,
name: "Javascript"
},
{
id: 2,
name: "PHP"
},
{
id: 3,
name: "CSS"
},
])
});
setTimeout(() => {
console.log(newPromise);
}, 1000);
newPromise
.then(function (courses) {
console.log("Successfully: ", courses);
})
.catch(function () {
console.log("Failure!");
})
.finally(function () {
console.log("Done!");
});

var newPromise = new Promise((resolve, reject) => {
console.log("Xử lý Promise!");
// Fake API data Promise
reject([
{
id: 1,
name: "Javascript",
},
]);
});
setTimeout(() => {
console.log(newPromise);
}, 1000);
newPromise
.then(function (result) {
console.log("Successfully: ", result);
})
.catch(function (error) {
console.log("Failure: ", error);
})
.finally(function () {
console.log("Done!");
});

var newPromise = new Promise((resolve, reject) => {
console.log("Xử lý Promise!");
// Fake API data Promise
reject("Lỗi request Timeout!");
});
setTimeout(() => {
console.log(newPromise);
}, 1000);
newPromise
.then(function (result) {
console.log("Successfully: ", result);
})
.catch(function (error) {
console.log("Failure: ", error);
})
.finally(function () {
console.log("Done!");
});

var newPromise = new Promise((resolve, reject) => {
console.log("Xử lý Promise!");
// Fake API data Promise
reject(new Error("Lỗi request Timeout!"));
});
setTimeout(() => {
console.log(newPromise);
}, 1000);
newPromise
.then(function (result) {
console.log("Successfully: ", result);
})
.catch(function (error) {
console.error(error + '');
})
.finally(function () {
console.log("Done!");
});

var newPromise = new Promise((resolve, reject) => {
console.log("Xử lý Promise!");
// Fake API data Promise
reject(new Error("Lỗi request Timeout!"));
});
setTimeout(() => {
console.log(newPromise);
}, 1000);
newPromise
.then(function (result) {
console.log("Successfully: ", result);
})
// .catch(function (error) {
// console.error(error + '');
// })
.finally(function () {
console.log("Done!");
});

var newPromise = new Promise((resolve, reject) => {
console.log("Xử lý Promise!");
// Fake API data Promise
reject(new Error("Lỗi request Timeout!"));
});
setTimeout(() => {
console.log(newPromise);
}, 1000);
newPromise
.then(
function (result) {
console.log("Successfully: ", result);
},
function (error) {
console.error(error + "");
}
)
// .catch(function (error) {
// console.error(error + '');
// })
.finally(function () {
console.log("Done!");
});

new Promise)callback gồm 2 tham số resolve và reject (function(resolve, reject))Executor) phân nhánh 1-Xử lý hoặc 2-Từ chối tương ứng:
callback function(resolve, reject) phải gọi hàm resolve() hoặc hàm reject() để tránh bị lỗi Memory Leak (Lỗi rò rỉ bộ nhớ), câu lệnh chạy liên tục gây lãng phí bộ nhớ, bị treo không thành công hay thất bại..then((data) => console.log(data))Hỏi: Trình bày khái niệm về Promise
Trả lời:
new Promise()