Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用顺序工作的setTimeout()函数迭代JSON对象_Javascript_Json_Settimeout - Fatal编程技术网

Javascript 使用顺序工作的setTimeout()函数迭代JSON对象

Javascript 使用顺序工作的setTimeout()函数迭代JSON对象,javascript,json,settimeout,Javascript,Json,Settimeout,作为另一个函数的结果,我在变量“JSON_result”中保存了一个JSON对象 我的目标是在超时5秒后,将每个JSON部分(例如JSON_result[i])记录到console.log中 我的第一次尝试是这样的: for (let key in json_result) { setTimeout(() => { if(json_result.hasOwnProperty(key)) { console.log(key + " -> " + JSON.stringify(j

作为另一个函数的结果,我在变量“JSON_result”中保存了一个JSON对象

我的目标是在超时5秒后,将每个JSON部分(例如JSON_result[i])记录到console.log中

我的第一次尝试是这样的:

for (let key in json_result) {
setTimeout(() => {
if(json_result.hasOwnProperty(key)) {
    console.log(key + " -> " + JSON.stringify(json_result[key]));
 };
 },5000);
 };
尽管我使用了“let”关键字进行范围界定,但它不起作用

我的第二种方法尝试将settimeout功能外包:

for (let key in json_result) {
setTimeout(() => {
if(json_result.hasOwnProperty(key)) {
    delayer(key);
 };
 },5000);
 };

function delayer(i) {
    setTimeout(() => { console.log(i + "->" + JSON.stringify(json_result[i]));}, 5000)};
有人能解释为什么这不起作用并提供解决方案吗

致以最诚挚的问候

您可能想要这个

const json\u结果={
“keyA”:“valueA”,
“keyB”:“valueB”,
“keyC”:“valueC”
}
const keys=Object.keys(json_结果)
cnt=0;
常量显示=()=>{
log(key[cnt]+“->”+JSON.stringify(JSON_result[key[cnt]]);
cnt++;
if(cnt您可能想要这个

const json\u结果={
“keyA”:“valueA”,
“keyB”:“valueB”,
“keyC”:“valueC”
}
const keys=Object.keys(json_结果)
cnt=0;
常量显示=()=>{
log(key[cnt]+“->”+JSON.stringify(JSON_result[key[cnt]]);
cnt++;
if(cntshow()不,它甚至不工作。我忘了索引键。现在它开始工作了。你能解释一下为什么你的解决方案有效而我的解决方案无效吗?你不能在循环中设置超时。推荐我的解决方案。如果你想每5秒使用一次ajax也是一样的。不,它甚至不起作用。我忘了索引键。现在它开始工作了。你能解释一下为什么你的解决方案有效而我的解决方案无效吗?你不能在循环中设置超时。推荐我的解决方案。如果您希望每5秒使用一次ajax,也是一样的