gpt4 book ai didi

javascript - 根据选项将 axios.get URL 传递到 axios.all

转载 作者:行者123 更新时间:2023-11-30 14:49:48 26 4
gpt4 key购买 nike

我正在构建一个 vue 应用程序,它将根据选择的选项搜索 YouTube channel 。

当该选项为 TRUE 时,我将该字符串放入一个数组中,该数组包含 axios.get() 请求的 URL。

我正在遍历该数组并运行 axios.get() 并返回值。我在 [[PromiseValue]] 内收到 Promise{} 响应和对象。

最后,我将响应组合到一个 vue 数据元素 (catAndDogResults) 中,但最后我得到了一个未定义的。

有没有更好的方法来完成我想做的事情?

data () {
return {
catVideos: true,
dogVideos: true,
catResults: [],
dogResults: [],
catAndDogResults: []
}
},
methods:
search: function() {
var that = this
var cats = 'https://www.googleapis.com/youtube/v3/search?part=snippet&q=cats'
var dogs = 'https://www.googleapis.com/youtube/v3/search?part=snippet&q=dogs'
var urls = []

if (this.catVideos == true) {
urls.push(cats)
}

if (this.dogVideos == true) {
urls.push(dogs)
}

function getVideos() {
for (var i = 0; i < urls.length; i++) {
console.log(axios.get(urls[i])) // returns under [[PromiseValue]]:object
return axios.get(urls[i])
}
}

axios.all([
getVideos()
])
.then(axios.spread(function (catRes, dogRes) {
that.catResults = catRes.data.items
that.dogResults = dogRes.data.items
that.catAndDogResults = that.catResults.concat(that.dogResults)
}))
}

编辑

修正了拼写错误

最佳答案

尝试更改您的 getVideos() 方法以在 for 循环之后返回数组:

function getVideos() {
var requests = [];
for (var i = 0; i < urls.length; i++) {
requests.push(axios.get(urls[i]));
}
return requests;
}

然后,这样调用它:

axios.all(getVideos())
.then(function (catRes, dogRes) { ... })

关于javascript - 根据选项将 axios.get URL 传递到 axios.all,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48324792/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com