Javascript 无法从Jest测试中获取异步等待-尝试-捕获函数的响应
我正在为使用try-catch风格语法的异步等待函数编写一个简单的jest测试 不幸的是,函数没有返回响应;我知道我错过了一些非常愚蠢的事情。我需要一双额外的眼睛 PS:大多数互联网资源关注于普通的异步等待,但很少关注异步等待尝试捕获;于是就这样问Javascript 无法从Jest测试中获取异步等待-尝试-捕获函数的响应,javascript,unit-testing,ecmascript-6,async-await,jestjs,Javascript,Unit Testing,Ecmascript 6,Async Await,Jestjs,我正在为使用try-catch风格语法的异步等待函数编写一个简单的jest测试 不幸的是,函数没有返回响应;我知道我错过了一些非常愚蠢的事情。我需要一双额外的眼睛 PS:大多数互联网资源关注于普通的异步等待,但很少关注异步等待尝试捕获;于是就这样问 async justAnotherAsyncAwait () { try { console.log(`inside async await`); return Promise.resolve('HIIII')
async justAnotherAsyncAwait () {
try {
console.log(`inside async await`);
return Promise.resolve('HIIII');
} catch (error) {
return Promise.reject(error);
}
}
expect(justAnotherAsyncAwait()).resolves.toEqual('HIIII')
控制台显示async Wait内部的
,两者都要求您返回承诺:
const justAnotherAsyncAwait = async () => {
try {
console.log(`inside async await`);
return await Promise.resolve('HIIII');
} catch (error) {
return Promise.reject(error);
}
}
describe('simple async await test', () => {
it('resolve HIIII', () => {
expect(justAnotherAsyncAwait()).resolves.toEqual('HIIII')
});
});
test('justAnotherAsyncAwait', () => {
// return the Promise
return expect(justAnotherAsyncAwait()).resolves.toBe('HIIII'); // Success!
});
test('justAnotherAsyncAwait', async () => { // <= async test function
// await the Promise
await expect(justAnotherAsyncAwait()).resolves.toBe('HIIII'); // Success!
});
…或使用async
测试功能并在Promise
上调用wait
:
test('justAnotherAsyncAwait', () => {
// return the Promise
return expect(justAnotherAsyncAwait()).resolves.toBe('HIIII'); // Success!
});
test('justAnotherAsyncAwait', async () => { // <= async test function
// await the Promise
await expect(justAnotherAsyncAwait()).resolves.toBe('HIIII'); // Success!
});
两者都要求您返回承诺
:
test('justAnotherAsyncAwait', () => {
// return the Promise
return expect(justAnotherAsyncAwait()).resolves.toBe('HIIII'); // Success!
});
test('justAnotherAsyncAwait', async () => { // <= async test function
// await the Promise
await expect(justAnotherAsyncAwait()).resolves.toBe('HIIII'); // Success!
});
…或使用async
测试功能并在Promise
上调用wait
:
test('justAnotherAsyncAwait', () => {
// return the Promise
return expect(justAnotherAsyncAwait()).resolves.toBe('HIIII'); // Success!
});
test('justAnotherAsyncAwait', async () => { // <= async test function
// await the Promise
await expect(justAnotherAsyncAwait()).resolves.toBe('HIIII'); // Success!
});
我想你错过了在返回承诺结果之前等待。你可以在等待承诺解决后返回。这篇帖子可能会帮助@rinkeshgolvala,但这似乎不起作用;除了等待js,还有没有一种本地的处理方法???我想你错过了在返回承诺结果之前等待。你可以在等待承诺解决后返回。这篇帖子可能会帮助@rinkeshgolvala,但这似乎不起作用;除了等待js,还有没有一种本地的处理方法???