var dienTichHinhThang = async (a, b, c, callBack) => {
try {
var ab = await add(a, b);
var ah = await multiply(ab, c);
var result = await divide(ah, 2);
return callBack(undefined, result);
} catch (err) {
return callBack(err);
}
};
dienTichHinhThang(2, 3, 4, (err, res) => {
if (err) {
return console.log(err + '');
}
console.log('Dien tich hinh thang: ', res);
});
Dùng callback Function
giúp cho:
Việc dùng Callback Function
giúp xử lý tùy biến kết quả trả về như:
Hạn chế ở đây là kết quả trả về có thể chỉ được xử lý trong một khối lệnh dienTichHinhThang
, nên tái sử dụng gán cho biến khác sẽ khó khăn.
Vậy ngoài cách dùng callback Function
ta có thể sử dụng trả về Promise
. Ngoài ra, việc dùng trả kết quả về là một Promise
còn giúp tái sử dụng kết quả, dùng cho những xử lý khác hoặc dùng tiếp ở các xử lý Async/Await function khác.
var tinhDienTich = async (a, b, c) => {
try {
var ab = await add(a, b);
var ah = await multiply(ab, c);
var result = await divide(ah, 2);
return Promise.resolve(result); // Return Promise
} catch (err) {
return Promise.reject(err); // Return Promise
}
};
// Tái sử dụng Kết quả là Promise trong xử lý Async khác
async function xuLy(a, b, c) {
var dt = await tinhDienTich(a, b, c)
.then((res) => res)
.catch((err) => console.log(err + ''));
if (dt !== undefined) {
console.log(dt);
}
}
xuLy(4, 5, '6');
// Error: Tham so truyen vao phai kieu Number - PHEPNHAN
xuLy(4, 5, 6);
// 27