ECMAScript 7: những tính năng đáng chú ý
ES6 đã ra mắt vào giữa năm 2015 và được lấy tên chính thức là ES2015, với rất nhiều những tính năng mới lạ, và cần thiết đối với sự phát triển chóng mặt của Javascript trong những năm gần đây. với sự ra đời của ES6 với rất nhiều tính năng mà bất kỳ một web developer nào cũng nên biết. và là một web ...
ES6 đã ra mắt vào giữa năm 2015 và được lấy tên chính thức là ES2015, với rất nhiều những tính năng mới lạ, và cần thiết đối với sự phát triển chóng mặt của Javascript trong những năm gần đây. với sự ra đời của ES6 với rất nhiều tính năng mà bất kỳ một web developer nào cũng nên biết. và là một web developer tôi cũng rất mong đợi sự ra đời của ES7 với những tính năng mới và hưu ích. chúng ta sẽ cùng xem ES7 có những tính năng mới nào mà theo tôi là những tính năng hay ES7 đem lại.
những tính năng trong ES7
1. hỗ trợ cho xử lý bất đồng bộ.
Trong những các tính năng của ES7. một trong những tính năng thú vị nhất theo sự đánh giá của tôi đó là sự bổ sung của async và await. việc làm việc với async khá là thường xuyên với chúng ta đặc biệt đối với những ứng dụng được phát triển sử dụng nodejs, hay việc call http đến server. bày toán async chưa bao giờ là đơn giản đối với chúng ta. để giải thích được lơi ích của async và await chúng ta sẽ đi đến một vị dụ cụ thể để chúng ta có thể hiển được tại sao tôi lại nghĩ đây là một trong những tính năng thú vị nhất của ES7. Ví dụ: giả sử chúng ta có 3 hoạt động không đồng bộ mỗi hoạt động phụ thuộc vào kết quả của hoạt động trước đó. có nhiều cách để tao có thể làm được việc này.
chúng ta sẽ quay lại quá khứ để xem ES5 xử lý như thế nào:
myFirstOperation(function(error, firstResult) { mySecondOperation(firstResult, function(error, secondResult) { myThirdOperation(secondResult, function(error, thirdResult) { * viết code xử lý với kết quả nhận được ở hoạt động thứ 3 * }); }); });
đối với ES5 chúng ta sẽ sử dụng callback để làm việc này tuy nhiên khuyết điểm của hướng giải quyết này là dẫn đến callback hell. để giải quyết vấn đề callback hell ES6 đã giới thiệu với chúng ta Promise để làm cho asynchronous đơn giản hơn nhiều. Chúng ta sẽ cùng xem code ES6:
myFirstPromise() .then(firstResult => mySecondPromise(firstResult) .then(secondResult => myThirdPromise(secondResult) .then(thirdResult => { * viết code xử lý với kết quả nhận được ở hoạt động thứ 3 * }, error => { * xử lý lỗi * }
ES6 với promise đã loại bỏ được vấn đề callback hell tồn tại ở ES5 khi sử dụng quá nhiều callback function lồng nhau. Chúng ta sẽ tiếp tục xem ES7 sử dụng async và await như thế nào:
async function myOperations() { const firstResult = await myFirstOperation(); const secondResult = await mySecondOperation(firstResult); const thirdResult = await myThirdResult(secondResult); * viết code xử lý với kết quả nhận được ở hoạt động thứ 3 * } try { myOperations(); } catch(e) { * xử lý lỗi * }
đoạn code trên giống như code của synchronous ?. đúng vậy với việc sử dụng async và await là code đơn giản hơn rất nhiều. nó làm cho đoạn code xử lý nhìn giống với code synchronous thật hay đúng không nào