This proposal cho thấy rằng async
chức năng có thể sử dụng các chức năng của máy phát điện dưới mui xe, mặc dù tôi không thể tìm thấy một xác nhận điều này trong ES2017 spec.async/await native implementations
Hơn nữa, khi mẫu máy phát điện trở nên sai lầm trong Chrome/Node.js, async
chức năng dường như không bị ảnh hưởng, điều này cho thấy GeneratorFunction
không được sử dụng bởi AsyncFunction
, ít nhất là trực tiếp:
Object.getPrototypeOf((function *() {}).prototype).next = null;
(async() => {
return await Promise.resolve(1);
})()
.then(console.log);
Cách chính xác async
/await
hoạt động trong các bản triển khai gốc hiện có?
Các triển khai có hiệu quả hơn khả năng với phương pháp Promise
/máy phát điện được đề xuất theo đề xuất và thường được triển khai trong Babel và TypeScript không?
Tôi tin rằng 'async - await' đang sử dụng chính xác cùng một cơ chế với lời hứa nhưng được phân tích cú pháp khác nhau bởi trình biên dịch. Trước khi thực hiện bản địa của họ có thể có được một trừu tượng (bắt buộc tìm mã không đồng bộ) tương tự như async chờ đợi bằng cách sử dụng máy phát điện và hứa hẹn như [giải thích ở đây đẹp] (https://curiosity-driven.org/promises-and-generators). – Redu