我想使用从userData对象获得的user_id键发出GET请求。
用于提出请求
var userData = [ { 编号: 1, user_id:"1234", }, { 编号: 2, user_id:"123454", }, . . 900 进入 ]
ABC.com?user_id = 1234
延迟 6s
abc.com?user_id = 123454
下一个请求延迟 6s...........
间隔后的连续user_id,我正在使用 setInterval 函数,但在发出请求时,user_id不会以相同的顺序获取。
如何实现这一点?
function checkStatus(userData) {
userData.map(function(n) {
var requestLoop = setInterval(function() {
request({
url: "abc.com?user_id="n.user_id,
n.user_id,
method: "GET"
}, function(error, response, body) {
if (error) {
return error;
}
});
}, 60000);
});
}
有很多方法可以做你想做的事情。 真正的问题是,你想做什么?
1. 对于 userData
中的每个条目,运行一个GET
请求,但仅在上一个请求之后延迟6 secs
。
function query(n) {
request({
url: "abc.com?user_id=" + n.user_id,
n.user_id,
method: "GET"
}, function(error, response, body) {
if (error) {
return error;
}
});
}
userData.forEach(function (n, i) {
setTimeout(query, 6000 * i, n);
});
2. 对于 userData
中的每个条目,运行多个 GET
请求,每个请求在上一个请求延迟 6 秒后
。 function query(n) {
request({
url: "abc.com?user_id=" + n.user_id,
n.user_id,
method: "GET"
}, function(error, response, body) {
if (error) {
return error;
}
// ...
if (shouldRepeatCondition) {
// keep repeating
setTimeout(query, 6000, n);
}
});
}
userData.forEach(function (n, i) {
setTimeout(query, 6000 * i, n);
})