我的目标是在5秒钟的超时后对每个JSON-PART(例如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-function外包:
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_result = {
"keyA": "valueA",
"keyB": "valueB",
"keyC": "valueC"
}
const keys = Object.keys(json_result)
cnt = 0;
const show = () => {
console.log(keys[cnt] + " -> " + JSON.stringify(json_result[keys[cnt]]));
cnt++;
if (cnt < keys.length) setTimeout(show, 5000);
};
show();