为什么用settimeout

来源:12-8 请求模块单元测试 jasmine-ajax + 测试代码编写

慕粉6137024

2021-03-25

首先就是boot.ts里的settimeout(()=>{…},0),0秒的settimeout不是没有效果吗?

 test('should return JSON when rejecting', done => {
   ...
    getAjaxRequest().then(request => {
      request.respondWith({
        status: 400,
        statusText: 'Bad Request',
        responseText: '{"error": "BAD USERNAME", "code": 1}'
      })
		// 还有就是这里为什么也要用settimeout?
		// then里面不是已经是resolve之后的值了吗?
		//还是因为request.repondWith是需要等待的,所以settimeout是个固定写法?
      setTimeout(() => {
        expect(typeof response.data).toBe('object')
        expect(response.data.error).toBe('BAD USERNAME')
        expect(response.data.code).toBe(1)
        done()
      }, 100)
    })
  })
写回答

1回答

ustbhuangyi

2021-03-26

只要用了 setTimeout,就是异步,即使是 0,使用 setTimeout 就是为了异步或者延时做一些事情。

0
2
ustbhuangyi
回复
慕粉6137024
因为 respondWith 这个 API 设计的也是一个异步过程
2021-03-26
共2条回复

下一代前端开发语言 TypeScript从零重构axios

课程从零开始重构功能完整的JS库,是学习造轮子的不二之选!

2631 学习 · 877 问题

查看课程