Как выполнить запросы к БД в асинхронном вызове? - PullRequest
0 голосов
/ 26 июня 2019

В настоящее время я написал код, который вызывает ссылку https и возвращает объект обещания. Я получаю объект обещания в асинхронной функции, используя await. Мне нужно написать условие, где я должен установить соединение с БД и вставить записи в асинхронную таблицу.

Все это должно происходить в асинхронной функции, но при ее выполнении я получаю сообщение «Ошибка: ошибка: не могу ждать без волокна».

Мне нужно понять, почему я получаю эту ошибку. Я почти уверен, что это происходит в результате асинхронной операции, но я не уверен, как решить эту проблему. Ниже приведен код

function apiTrigger(url, protocol) {
    var result = {};
    var http = $.require(protocol);
    var output = new Promise(function (resolve, reject) {
        http.get(url, function (res) {
--------------
--------------
--------------
            resolve(result);
                }
            });
        }).on('error', reject);
    });
    return output;
};

async function apiCall(cb) {

    try {

        var result = await apiTrigger(
            'link',
            'https');

        console.log("Output is " + JSON.stringify(result));
        var retrieve = result.retrievedOutput;
        console.log("Printed " + retrieve);
        var message = JSON.parse(result.retrievedOutput);
        console.log("message " + message.MESSAGE);
        if(message.MESSAGE ==1) {
        var connection = $.hdb.getConnection();
        var query = 'insert into "portable" values(?,?,?,?,?)';
        console.log("Query is " + query);
        connection.executeUpdate(query, '2019-03-21', 5, 'MDU', 'INR', 899);
        connection.commit();
}
    } catch (err) {
        console.log("The error is " + err);
    }

};

$.response.setBody(apiCall());

В настоящее время, когда я выполняю этот код, я получаю сообщение «Ошибка: Ошибка: не могу ждать без оптоволокна». Ожидаемый результат - выполнение запроса к БД. Пожалуйста, помогите

...