Приватные методы класса. "Unexpected token '('"

Имею такой метод:

    async #initCurrenciesDataFromApi() {
        const getData = await this.network.get(this.#api);
        return getData.data;
    }

При запуске получаю:

async #initCurrenciesDataFromApi() {
                                    ^

SyntaxError: Unexpected token '('

Ответы (1 шт):

Автор решения: nörbörnën

Возможно браузер не поддерживает новые возможности.

Поддержка в node.js, скорее всего, с 15той версии.

Попробуйте запустить рабочий пример:

class Class {
  #api = '123';
  async fun() {
    return this.#initCurrenciesDataFromApi();
  }
  async #initCurrenciesDataFromApi() {
    const getData = await this.network.get(this.#api);
    return getData.data;
  }
  get network() {
    return {
      get(x) {
        console.log(x);
        return Promise.resolve({ data: true });
      }
    };
  }
}

const z = new Class();
z.fun().then(console.log).catch(console.error);

Должен показать в консоли

123

true

Проверено на Node.js v14.13.0

xxx:~ $ node
Welcome to Node.js v14.13.0.
Type ".help" for more information.
> class Class {
...   #api = '123';
...   async fun() {
.....     return this.#initCurrenciesDataFromApi();
.....   }
...   async #initCurrenciesDataFromApi() {
.....     const getData = await this.network.get(this.#api);
.....     return getData.data;
.....   }
...   get network() {
.....     return {
.......       get(x) {
.........         console.log(x);
.........         return Promise.resolve({ data: true });
.........       }
.......     };
.....   }
... }
undefined
> 
> const z = new Class();
undefined
> z.fun().then(console.log).catch(console.error);
123
Promise { <pending> }
> true
→ Ссылка