就像标题一样,我正在制作一个调用YouTube API的应用程序,但有时我的应用程序会发出太多触发API配额限制的请求,从而使应用程序因API服务器上的错误而停止工作。我在互联网上找到的解决方案是创建多个API密钥并通过它们进行循环。但我有一个头痛的问题,弄清楚如何让我的Axios在返回数据之前尝试多个API url。在这方面有什么建议或技巧吗?
下面是我尝试的示例代码:
async function getYoutubeVideoSnippet(id) {
const response = await axios.all([
axios.get(
"https://www.googleapis.com/youtube/v3/videos?part=snippet,contentDetails,statistics&id=" +
id +
"&key=API_KEY"
),
axios.get(
"https://www.googleapis.com/youtube/v3/videos?part=snippet,contentDetails,statistics&id=" +
id +
"&key=API_KEY"
),
]);
return response.data;
}
我不明白你到底想做什么,但是如果你想有很多请求,只需要一个响应,你可以使用Promise.any
。例如
async function fetchData () {
const requests = [
axios.get('...'),
axios.get('...'),
]
const response = await Promise.any(requests)
return response.data
}
在这个例子中,您可以接收到第一个响应,但是您应该知道所有请求最终都会发送