Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.06.2017, 12:15
Новичок на форуме
Отправить личное сообщение для thevalakas Посмотреть профиль Найти все сообщения от thevalakas
 
Регистрация: 29.07.2016
Сообщений: 7

sqlite3 async/await не возвращается результат
'use strict';

const sqlite = require('sqlite3').verbose();

const db = new sqlite.Database('database.db');

module.exports.register = function (from) {
    db.all("SELECT * FROM users WHERE tele_id = ?", [from.id], function (err, rows) {
        if (rows.length < 1) {

            if (from.last_name === undefined) {
                from.last_name = null;
            }

            if (from.username === undefined) {
                from.username = null;
            }

            db.run("INSERT INTO users (tele_id, first_name, last_name, username) VALUES (?, ?, ?, ?)", [from.id, from.first_name, from.last_name, from.username]);
        }
    });
};

module.exports.balance = async function (tele_id) {
    let balance;

    await db.get("SELECT * FROM users WHERE tele_id = ?", [tele_id], (err, result) => {
        balance = result.balance;
    });

    return balance; // Возвращает Promise { <pending> } а не balance
};


Функция balance должна возвращать баланс пользователя, а возвращает Promise { <pending> }
Ответить с цитированием
  #2 (permalink)  
Старый 19.06.2017, 18:25
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,004

какая-то странная мешанина колбэков и промисов.

async/await всего лишь тонкая обертка над промисами, для "более удобного" кодинга в стиле, напоминающем синхронный код (но по факту не являющемся таковым). Ты уверен, что точно знаешь, как оно работает?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вывести результат AJAX в div с динамическим ид voron121 AJAX и COMET 6 30.05.2016 18:46
Как передать результат в другую функцию hakudjin Общие вопросы Javascript 1 16.09.2015 11:52
Результат дистанции двух точек черех google map чтобы выводился на отдельную страницу fastabst Элементы интерфейса 2 01.12.2014 17:43
Не получается обработать результат AJAX Delovoy AJAX и COMET 3 25.03.2011 16:39
Результат вычислений в экспоненциальной форме Sharp Общие вопросы Javascript 19 02.04.2009 21:59