JavaScript использует async / await из класса - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть класс JavaScript, и я пытаюсь выяснить, как использовать новые ключевые слова async/await в методе connect.

module.exports = class {
    constructor(url) {
        if(_.isEmpty(url)) {
            throw `'url' must be set`;
        }

        this.url = url;
        this.client = new MongoClient(url, {
            useNewUrlParser: true
        });
    }

    connect() {
        this.client.connect(async (error) => {
            if(error) {
                throw error;
            }
        });
    }
};

По сути, я хочу подождать, пока connect() не вернется из обратного вызова,Я добавил async перед обратным вызовом, но мне также не нужен оператор await?Я получаю UnhandledPromiseRejectionWarning от Node.js.

1 Ответ

0 голосов
/ 11 февраля 2019

Если connect является асинхронной функцией / возвращает обещание, вы можете ожидать вызова, если вызываете его из асинхронной функции, например:

async connect() {
        await this.client.connect(async (error) => {
            if(error) {
                throw error;
            }
        });
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...