Могу ли я использовать функцию затем в nodejs .. xlToDb (). then (() => { - PullRequest
0 голосов
/ 04 мая 2020

У меня есть функция для преобразования файла Excel в json. После этого я должен прочитать этот файл json и выполнить некоторые другие действия. поэтому сначала я вызвал метод xlToDb в своем коде, а затем добавил функцию затем, как это ---- ---- xlToDb (). then (() => {}) - но я получил эту ошибку --TypeError: Cannot читать свойство 'then' из undefined. Я сделал в nodejs. как я могу получить доступ к файлу, который я конвертировал, используя функцию сразу после вызова функции

Затем я попытался использовать ее вместе с функцией, как показано ниже, но все же я не могу использовать ее сразу после кода

// ПГМ преобразует xl в json

const exceltojson = require('xlsx-to-json');
const fs = require('fs');
exceltojson({
    input: "testxl.xlsx",
    output: 'testxl.txt',// Don't need output
    sheet: 'Student_Details'
  },
  function(err, result) {
    if (err) {
      console.error(err);
      return;
    }
    else{
      console.log(result+'   result')
      console.log(result)
    }
    const newResult = result.map(obj => {
      const newObj = Object.keys(obj).reduce((acc, key) => {
        const newKey = key.replace(/ /g, '').toLowerCase();
        acc[newKey] = obj[key];
        console.log(newKey+'   newKey ')
        console.log('hello')
        return acc;
      }, {});
      return newObj;


     });
        fs.writeFileSync('testxl2.json', JSON.stringify(newResult));
      }
    ).then(function(result){

console.log(result)
})

1 Ответ

0 голосов
/ 04 мая 2020

.then() является собственностью Обещания . Ваша функция xlToDb, кажется, возвращает undefined. Измените реализацию функции, чтобы она возвращала Promise, чтобы этот код работал.

Если функция внешняя и вы не можете ее изменить, вы не можете использовать ее следующим образом.

...