Преобразование функции обещания в асинхронное / ожидание - PullRequest
0 голосов
/ 27 марта 2019

Я пытаюсь преобразовать эту функцию в async / await. Но запутался. Есть ли способ сделать это?

const csv = require('fast-csv');
const inputFileFolder = 'upload';

    const readData = (inputFileName) => {
      const csvData = [];

      return new Promise((resolve, reject) => {
        csv
          .fromPath(`${inputFileFolder}/${inputFileName}`)
          .on('data', (data) => {
            csvData.push(data);
          })
          .on('end', () => {
            resolve(csvData);
          })
          .on('error', () => {
            reject(new Error('Something went wrong while reading the CSV file.'));
          });
      });
    };

Ответы [ 2 ]

1 голос
/ 27 марта 2019

async..await предоставляет синтаксический сахар для then и catch методов обещаний для синхронного объединения обещаний.

Поскольку обещание создано, но не объединено в цепочку, использование async..await не улучшит код. new Promise по-прежнему необходимо с async..await, когда нет обещания цепочки.

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

Вы можете использовать await, только если объявите его в функции async.Вы можете использовать его, а затем использовать правильную обработку ошибок.Но если вы хотите использовать await, вы можете использовать

async function name() {
  await // Your code here
};
...