Вызов затем после обещания, заключенного в функцию - PullRequest
0 голосов
/ 02 ноября 2018

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

    this.updateDB('abc');
    this.updateDB('cde');

    updateDB = (content) => {
     firebase.database().ref('something').update(content)
}

Если бы я однажды вызвал обновление базы данных, я мог бы использовать 'then'. и делать что-то, но я должен вызвать эту функцию дважды. Как я могу что-то сделать, когда оба вызова функций завершатся?

Я пытался исследовать вопрос, который стал более запутанным. Буду признателен за любые рекомендации

Заранее спасибо

1 Ответ

0 голосов
/ 02 ноября 2018

Поскольку .update() может вернуть обещание, вы можете использовать Promise.all() с обоими обещаниями, чтобы знать, когда они оба будут выполнены:

Promise.all(this.updateDB('abc'), this.updateDB('cde')).then(() => {
    console.log('both done here');
}).catch(err => {
    console.log('an error in one or both updates occurred');
});


updateDB = (content) => {
    // return promise
    return firebase.database().ref('something').update(content);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...