我想在for循环操作完成后调用一个函数,请问方向吗?
这是我的代码:
Function1: function () {
var $this = this;
$this.Action();
var l = $this.list.length;
for (var i = 0; i < l; i++) {
Function2(i)
}
function Function2(i){
axios.post('/api', $this.list[i])
.catch(function(error) {
console.log(error);
});
};
},
我想在$this.notAction()
时打电话给i > l || i == l
使用异步/等待
Function1: async function () {
var $this = this;
$this.Action();
var l = $this.list.length;
for (var i = 0; i < l; i++) {
await Function2(i)
}
$this.notAction();
async function Function2(i){
try {
await axios.post('/api', $this.list[i]);
} catch (err) {
console.log(err);
}
};
}
仅检查最后一次调用的执行时间,因为i永远不会大于l。也可以在jQuery的POST调用中使用常规函数。
Function1: function () {
var $this = this;
$this.Action();
var l = $this.list.length;
for (var i = 0; i < l; i++) {
var p = Function2(i);
p.done( function() {
if ( i == ( l - 1 ) ) {
$this.notAction();
}
});
}
function Function2(i){
return axios.post('/api', $this.list[i])
.catch(function(error) {
console.log(error);
});
};
},
类似的事情会起作用..
for (var i = 0; i <= l; i++) {
if(i==l){
$this.notAction();
break;
}
Function2(i);
}