Как изменить значение переменной после вызова функции с использованием таблицasjson? - PullRequest
0 голосов
/ 21 января 2019

почему переменную нельзя изменить после вызова функции?

это мой код:

const tabletojson = require('tabletojson');

var email ;

tabletojson.convertUrl(

    'https://myurl
    ,
    { stripHtmlFromCells: true },
    function(tablesAsJson) {


  email = tablesAsJson[2][7][1];
var result2 = tablesAsJson;
        console.log(result2);
        var Firstname;
        var lastname;
        Firstname = tablesAsJson[0][1][1]
        lastname = tablesAsJson[0][0][1]

        console.log("Hello Sir: "+Firstname + "  " +lastname + ".  your email is : " + email)

        console.log(email)// this prints the correct answer
    }
  );

при попытке распечатать электронную почту вне ее функции возвращая пустой текст с console.log («адрес электронной почты» + электронная почта);

Ответы [ 2 ]

0 голосов
/ 25 января 2019

Если вам нужно использовать этот код как экспортированную функцию из модуля, вам нужно что-то вроде этого:

test-module.js:

'use strict';

const tabletojson = require('tabletojson');

async function getTableAsArray(url) {
  try {
    return await tabletojson.convertUrl(url);
  } catch (err) {
    console.error(err);
  }
}

module.exports = {
  getTableAsArray,
};

test.js:

'use strict';

const testModule = require('./test-module.js');

(async function main() {
  try {
    const array = await testModule.getTableAsArray(
      'https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes'
    );
    console.log(array[1][0]);
  } catch (err) {
    console.error(err);
  }
})();
0 голосов
/ 21 января 2019

Метод convertUrl является асинхронным, и вы не можете использовать как await в коде верхнего уровня, как хотите.

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