gpt4 book ai didi

javascript - 如何在 vuejs 中使用 axios 从数组发送多个请求?

转载 作者:搜寻专家 更新时间:2023-10-30 22:51:17 24 4
gpt4 key购买 nike

我尝试使用 axios 从一个数组发布到一个 api php 文件,并一个接一个地获取响应,而不仅仅是一个请求。我阅读了一些有关 axios.all() 的内容,但无法理解我是 javascript 的新手。

<div id="app">
<center>
<div id="area">
<textarea v-model="sent" name="sent" id="sent" cols="30" rows="10" class="form-control">
</textarea>
<br>
<button v-on:click="insert" class="btn btn-default">Send</button>
</div>

<div id="good" v-for="message of messages">
<span><h2>Good</h2></span>

{{ message }}

</div>

</center>
</div>

这是vuejs代码。

<script>
new Vue({
el:'#app',
data:{
sent:[],
messages:[]
},
methods:{
insert:function (){
const vm = this;
splitz.forEach(function(entry){
axios.post('/one.php', {
sent: vm.entry
}).then(response => {
vm.messages.push(response.data.onefinal) ;
console.log(response.data);
}
).catch(function(error){ console.log(error); });
}
}
},
computed:{
splitz: function () {
return this.sent.split('\n')
}
}
});
</script>

最佳答案

你可以这样做:

// Create an array of post requests from splitz array
var requests = splitz.map(entry => axios.post('/one.php', { sent: this.entry }))

// Send all requests using axios.all
axios.all(requests)
.then(results => results.map(response => response.data.onefinal))
.then(newMessages => {
console.log('New Messages:', newMessages)
this.messages.push.apply(this.messages, newMessages)
})

编辑:将请求一一发送:

insert: function() {

var vm = this;

function sendRequest(arr, i) {
var entry = arr[i];
axios.post('/one.php', { sent: entry }).then(function (response) {
vm.messages.push(response.data.onefinal);
if (i < arr.length - 1) {
sendRequest(arr, ++i);
}
})
.catch(function (error) {
console.log(error);
});
}

sendRequest(this.splitz, 0);

}

关于javascript - 如何在 vuejs 中使用 axios 从数组发送多个请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48348172/

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