Nock 回复 302 和 404 抛出 HTTPError
Nock reply with 302 and 404 throws an HTTPError
我正在制作一个函数,该函数应该重试 302 错误代码和 return 数据 200,否则只会抛出错误。
async retry(url: string): Promise<Response<string>> {
const response = await got.get(url)
switch(res.statusCode){
case 200: {
return response
}
case 302: {
-> call login
-> call retry again with retry(url)
}
default: {
throw error
}
}
}
问题是当我像这样设置箭尾时
const scope = nock('https://airtable.com')
.get(`/${baseID}/api/docs`)
.reply(302)
})
问题是它甚至不能调用重试,因为 mock returns 302 状态代码在内部为他抛出一个 HTTPError,这不是这里想要的行为,所以是否要添加告诉他不要抛出错误?
发生这种情况是因为 Got 的默认行为。
它会针对它认为是错误的某些状态代码抛出错误。
您可以通过设置 throwHttpErrors
选项 (docs) 将 Got 配置为不根据状态代码抛出错误。
我正在制作一个函数,该函数应该重试 302 错误代码和 return 数据 200,否则只会抛出错误。
async retry(url: string): Promise<Response<string>> {
const response = await got.get(url)
switch(res.statusCode){
case 200: {
return response
}
case 302: {
-> call login
-> call retry again with retry(url)
}
default: {
throw error
}
}
}
问题是当我像这样设置箭尾时
const scope = nock('https://airtable.com')
.get(`/${baseID}/api/docs`)
.reply(302)
})
问题是它甚至不能调用重试,因为 mock returns 302 状态代码在内部为他抛出一个 HTTPError,这不是这里想要的行为,所以是否要添加告诉他不要抛出错误?
发生这种情况是因为 Got 的默认行为。 它会针对它认为是错误的某些状态代码抛出错误。
您可以通过设置 throwHttpErrors
选项 (docs) 将 Got 配置为不根据状态代码抛出错误。