Javascript 无法从Jest测试中获取异步等待-尝试-捕获函数的响应

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')

我正在为使用try-catch风格语法的异步等待函数编写一个简单的jest测试

不幸的是,函数没有返回响应;我知道我错过了一些非常愚蠢的事情。我需要一双额外的眼睛

PS:大多数互联网资源关注于普通的异步等待,但很少关注异步等待尝试捕获;于是就这样问

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,还有没有一种本地的处理方法???