Async / Await Reactjs - PullRequest
       3

Async / Await Reactjs

0 голосов
/ 18 марта 2019

Я пытаюсь использовать async / await в моем проекте «Реакция / Электрон», но это не рабочая работа. То, что я хочу, чтобы получить список состояния контейнеров Docker. Но console.log (список) возвращает неопределенное значение.

async componentDidMount() {
    let list = await this.getDockerList();
    console.log(list);
  }

  async getDockerList() {
    let files = fs.readdirSync('/home/Docker');
    let dockerList = [];
    let index = 0;
    await files.forEach(async function (value, i) {
      await exec('docker ps -a -q --filter=name=' + value + '_web_1 --filter=status=running', (err, stdout) => {
        if (stdout !== '') {
          dockerList[i] = { name: value, status: 1 };
        } else {
          dockerList[i] = { name: value, status: 0 };
        }
        if ((index + 1) === files.length) {
          console.log('returned');
          return dockerList;
        }
        index++;
      });
    });
  }

Может кто-нибудь помочь мне, пожалуйста? :)

1 Ответ

0 голосов
/ 18 марта 2019

Ваша функция getDockerList() не входит в область действия this. Вы можете либо преобразовать свою функцию в функцию жирной стрелки getDockerList = async () => {}, например, либо связать ее с вашей функцией this.getDockerList = this.getDockerList.bind(this) внутри конструктора.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...