我有调用 API 并根据响应返回结果的函数。 但有时我可能会收到错误或其他问题。我希望我的代码再次尝试,直到收到良好的响应。
示例代码:
for(let i = 0; i < someValues.length; i++) {
await Test(someValues[i]);
}
async function Test(someValue: string): Promise<SomeObject | null> {
try {
const response: any = await someapi.call(someValue); // if got some error from api (connect etc.) then try again
if(response) {
return response;
}
return null;
}
catch(err) {
console.log(err);
setTimeout(async () => {
await Test(someValue);
}, 100);
}
}
这段代码可以工作吗?如果第一次尝试会得到 api 错误,上面的循环会收到什么响应?
也在
Promise<SomeObject | null>
中遇到此错误:
Function lacks ending return statement and return type does not include 'undefined'
我认为你应该在 setTimeout 调用中返回
await Test(somevalue)
。
catch(err) {
console.log(err);
setTimeout(async () => {
return await Test(someValue);
}, 100);