关于此代码的任何想法
jest.useFakeTimers()
it('simpleTimer', async () => {
async function simpleTimer(callback) {
await callback() // LINE-A without await here, test works as expected.
setTimeout(() => {
simpleTimer(callback)
}, 1000)
}
const callback = jest.fn()
await simpleTimer(callback)
jest.advanceTimersByTime(8000)
expect(callback).toHaveBeenCalledTimes(9)
}
Run Code Online (Sandbox Code Playgroud)
```
失败了
Expected mock function to have been called nine times, but it was called two times.
Run Code Online (Sandbox Code Playgroud)
但是,如果我await从LINE-A中删除,则测试通过.
Promise和Timer不能正常工作吗?
我认为开玩笑的原因是等待第二个承诺来解决.