Tôi đã sử dụng các tính năng ECMAScript 6 và ECMAScript 7 (nhờ Babel) trong các ứng dụng của tôi - cả di động và web.
Bước đầu tiên rõ ràng là ECMAScript 6 cấp độ. Tôi đã học được nhiều mẫu không đồng bộ, các hứa hẹn (thực sự hứa hẹn), trình tạo (không rõ tại sao ký hiệu *), v.v. Trong số này, các hứa hẹn phù hợp với mục đích của tôi khá tốt. Và tôi đã sử dụng chúng trong các ứng dụng của mình khá nhiều.
Đây là một ví dụ / mã giả về cách tôi đã triển khai một lời hứa cơ bản-
var myPromise = new Promise(
function (resolve,reject) {
var x = MyDataStore(myObj);
resolve(x);
});
myPromise.then(
function (x) {
init(x);
});
Khi thời gian trôi qua, tôi đi qua ECMAScript 7 tính năng, và một trong số đó ASYNC
và AWAIT
từ khóa / chức năng. Những điều này kết hợp với nhau làm nên những điều kỳ diệu. Tôi đã bắt đầu thay thế một số lời hứa của mình bằng async & await
. Chúng dường như thêm giá trị lớn cho phong cách lập trình.
Một lần nữa, đây là một mã giả về cách hàm async, await của tôi trông như thế nào-
async function myAsyncFunction (myObj) {
var x = new MyDataStore(myObj);
return await x.init();
}
var returnVal = await myAsyncFunction(obj);
Bỏ các lỗi cú pháp (nếu có) sang một bên, cả hai đều làm giống nhau là điều tôi cảm thấy. Tôi gần như đã có thể thay thế hầu hết các lời hứa của mình bằng async, đang chờ.
Tại sao không cần đồng bộ hóa, chờ đợi khi các lời hứa thực hiện một công việc tương tự?
Không đồng bộ hóa, chờ đợi có giải quyết được vấn đề lớn hơn không? Hay đó chỉ là một giải pháp khác để gọi lại địa ngục?
Như tôi đã nói trước đó, tôi có thể sử dụng các hứa hẹn và không đồng bộ, đang chờ giải quyết vấn đề tương tự. Có điều gì cụ thể mà async đang chờ giải quyết không?
Ghi chú bổ sung:
Tôi đã sử dụng async, chờ đợi và hứa hẹn trong các dự án React và các mô-đun Node.js của tôi một cách rộng rãi. Đặc biệt React đã là một con chim đầu đàn và được áp dụng rất nhiều tính năng ECMAScript 6 và ECMAScript 7.