ждать внутри или снаружи ожидать? - PullRequest
1 голос
/ 25 апреля 2019

В чем разница между:

it('should blabla', async () => {
    await expect(callThatReturnsAPromise()).toBe(false);
});

и:

it('should blabla', async () => {
    expect(await callThatReturnsAPromise()).toBe(false);
});

Итак, ждите снаружи или внутри ожидаемой функции?

А что, если вызов внутри toBe также возвращает обещание, какую версию мне следует использовать?

it('should blabla', async () => {
    await expect(callThatReturnsAPromise()).toBe(callThatReturnsAPromise2());
});

или:

 it('should blabla', async () => {
     expect(await callThatReturnsAPromise()).toBe(await callThatReturnsAPromise2());
 });

Так что будет ожидать за пределами ожидаемогоразрешает все обещания или я должен ждать каждого из них внутри функций?

Хорошо, я проверял этот код:

let a = function() {
        console.log('huba');
        return new Promise((resolve, reject) => {
            setTimeout(() => {
                resolve(42);
            }, 5000);
        });
    };

    let b = function() {
        console.log('buba');
        return new Promise((resolve, reject) => {
            setTimeout(() => {
                resolve(11);
            }, 5000);
        });
    };

    describe('test', function() {
        it('blabla', async function() {
            await expect(a()).toBe(b());
        });
    });

и кажется, что ожидание за пределами ожидания ожидаетдля обещания a () и b () должны быть решены.Но я не знаю почему.Ни ожидание не возвращает обещание, ни быть.Так почему я могу ждать вне их?

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