Я использую асинхронные генераторы в качестве методов класса, например,
class Edge {
async* get(key,test,path=[]) { /* ... do some stuff */; return }
}
Несмотря на то, что код нормально работает в Chrome и Edge, Babel выдает ошибку при попытке переноса для Node.js с использованиемpreset "env".
SyntaxError: C:/Users/Simon/git/reasondb/src/Edge.js: Unexpected token
(125:6)
123 | return this;
124 | }
> 125 | async* get(key,test,path=[]) {
| ^
Узел v11. . сам по себе может обрабатывать синтаксис напрямую, поэтому мне не нужно переносить подобные вещи.Единственная причина, по которой я использую Babel, состоит в том, чтобы переносить операторы импорта модулей, поскольку Node еще плохо их обрабатывает, например, import {Edge} from "Edge.js"
отлично работает в текущих версиях Edge и Chrome, но Node выдаст синтаксическую ошибку даже для {
когда передан флаг --experimental-modules.
Babel будет правильно обрабатывать вещи, если я переместу функцию на класс и на прототип, например,
Edge.prototype.get = function*(key,text,path=[]) { ... }