Проблемы с Async / ожидают.Не работает следующая строка - PullRequest
0 голосов
/ 12 октября 2018

работает с некоторым сильно асинхронным кодом, и я не уверен, почему какой-то код не работает.Я на самом деле не получаю ошибок от отладчика кода VS о том, почему.

У меня есть функция, которая читает файл CSV, а затем запрашивает базу данных SQL.

const db = require('./db');
const csv = require('csvtojson');
const path = require('path');

const remapGroups = async () => {
    try{
        let fileName = path.join(__dirname, 'fnvgroups.csv');
        let data = await csv().fromFile(fileName);
        let idMap = []
        let pool = await db.getPoolConnection();
        data.forEach( async (x) => {
            let id = `FNV-${x.External_ID}`;
            let query = `select distinct finalId from ns_union..tblUnion where sourceId='${id}'`;
            let result = await db.queryUnion(pool, query);
            idMap.push({original: id, final: result});
        });
        console.dir(idMap);
    }catch(err) {
        console.error(err);
    }
}

соответствующие частивзяты из файла db.js, являются функцией getPoolConnection:

const mssql = require('mssql');
const getPoolConnection = async ( srvaddress = server) => {
  try {
    let pool = await mssql.connect({
      user: username,
      password: password,
      server: srvaddress,
      options: {
        tdsVersion: srvaddress === 'gsoboss' ? '7_1' : '7_4'
      }
    });
    return pool;
  } catch (err) {
    console.error(err);
  }
};

и функцией queryUnion:

const queryUnion = async (pool, query) => {
  try{
    let result = await pool.request().query(query);
    console.log(result);
    return result;
  }catch(err){
    console.error(err);
  }
}

проблема, с которой я сталкиваюсь, заключается в том, что строкав remapGroups, который вызывает объединение запросов.он выполняет запрос, но внутри queryUnion он никогда не запускает строку return result.

Соединение с базой данных надежное, и я могу подтвердить, что оно работает в других частях кода, которые выполняют другие функции,и у меня есть ощущение, что я неправильно использую async / await.

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