В чем разница между:
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 () должны быть решены.Но я не знаю почему.Ни ожидание не возвращает обещание, ни быть.Так почему я могу ждать вне их?