请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

为什么用settimeout

首先就是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)
    })
  })

正在回答 回答被采纳积分+3

1回答

ustbhuangyi 2021-03-26 10:45:42

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

0 回复 有任何疑惑可以回复我~
  • 提问者 慕粉6137024 #1
    所以在request.respondWith后再调用settimeout是一个固定写法是吧?不这样写就可能获取不到response结果?
    回复 有任何疑惑可以回复我~ 2021-03-26 11:45:29
  • ustbhuangyi 回复 提问者 慕粉6137024 #2
    因为 respondWith 这个 API 设计的也是一个异步过程
    回复 有任何疑惑可以回复我~ 2021-03-26 17:43:03
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信