使用值数组重复函数
Repeating a function using array of values
因此,我有以下js函数:
var name_list = names; //mike,steve,sean,roger
jQuery.ajax({
type: "GET",
url: custom.ajax_url,
dataType: 'html',
data: ({ action: 'some_function', name_list:name_list}),
success: function(data){
alert('success')
});
这里有一个变量,它包含一个值数组(用逗号分隔"mike,steve,sean,roger")。
现在,我想使用第一个值来调用ajax(name_list=mike),完成后,我想用第二个值(name_list=steve)重复相同的ajax调用。
这是我的问题。
当函数(ajax调用)成功时,我如何在变量中使用单个值,并且只使用后续值?
谢谢!
这是一种方法:
var name_list = ['mike','steve','sean','roger'];
function recursive(list, done) {
list = list.slice();
(function next() {
var name = list.shift();
jQuery.ajax({
type: "GET",
url: 'url',
dataType: 'html',
data: ({ action: 'some_function', name : name }),
success: function(data) {
console.log('success', name);
}
}).then(list.length ? next : done);
}());
}
recursive(name_list, function() {
console.log('all done');
});
只需尝试使用ajax生成所需的函数,然后传递值和成功后,再次运行ajax,直到达到您的阵列
var name_list = names.split(','); //mike,steve,sean,roger
var repeat_Ajax = function(i){
jQuery.ajax({
type: "GET",
url: custom.ajax_url,
dataType: 'html',
data: { action: 'some_function', name_list:name_list[i]}, // no need for `( )` here
success: function(data){
if(i !== name_list.length){
repeat_Ajax(i+1);
alert('success');
}
});
}
repeat_Ajax(0);
未测试的代码,但我希望它能与您一起使用
我添加了一个按钮来演示它的工作原理,使用控制台进行观察。
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>SerialArrayFeed</title>
</head>
<body>
<button id="btn">Feed</button>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script>
jQuery.ajax({
type: "GET",
url: "_custom.ajax.url",
dataType: "html",
data: ({
action: serialArrayFeed,
names: arr
}),
success: function(data) {
if (data != undefined) {
alert('success');
}
}
});
var arr = ['mike', 'steve', 'sean', 'roger'];
var qty = arr.length;
function serialArrayFeed(arr) {
for (var i = 0; i < qty; i++) {
var next = arr.pop(i);
break;
return next;
}
console.log('arr: ' + arr + ' next: ' + next);
}
var btn = document.getElementById('btn');
btn.addEventListener('click', function(event) {
serialArrayFeed(arr);
}, false);
</script>
</body>
</html>
相关文章:
- 使用jQuery浏览函数数组
- coffescript/javascript函数数组的行为真的很奇怪
- 返回多个变量的 JavaScript 函数:数组与对象.最佳实践是什么
- 如何在 JavaScript 中动态地编写可迭代的函数数组
- JavaScript 自包含函数数组访问自我索引
- 如何在javascript中调用函数数组的索引号
- 从外部函数(数组)了解返回函数(x)
- Javascript函数数组
- 引用函数数组中的另一个函数
- 文本框搜索/Javascript函数数组**不对应**
- 返回一个函数数组
- selenium-webdriver 将函数数组作为参数传递给 executeScript
- 70%的时间运行JavaScript函数,从函数数组中随机选择
- 如何循环函数数组并在单击时一次执行一个
- 如何在 Javascript 命名空间脚本中创建函数数组
- 创建函数数组
- 在 Jscript 中为 Q.all() 构建一个动态函数数组
- 打印函数数组的函数名称
- 循环遍历函数数组 - 对象不支持此属性或方法 (IE8)
- 将函数数组传递给另一个函数