【发布时间】:2021-01-19 13:16:37
【问题描述】:
我如何知道我的代码何时完成循环?完成后我还要运行一些代码,但它只能在我在那里写的所有东西都完成后才能运行。
obj.data.forEach(function(collection) {
var serialized_array = collection['quiz_ids'];
quiz_collections.push([collection['id'], collection['name'], collection['type'], collection['category'], serialized_array.split(',')]);
serialized_array.split(',').forEach(function(ite) {
query('./php/query.php', 2, [['quiz_id', ite]]).then(function(quiz_obj) {
if (quiz_obj.data[0] == 'false') {
}
else {
fetch(quiz_obj.data[0]['data']).then(function(resp) {
return resp.json();
})
.then(function(data) {
console.log(data);
quiz_data.push([quiz_obj['id'], quiz_obj['name'], quiz_obj['version'], quiz_obj['data'], data]);
});
}
});
});
});
如果有帮助的话。我在第一行的 obj.data 如下所示:
这是我的查询功能:
function query(url, cmd_type, data_array) {
var request = new XMLHttpRequest();
var params= '';
params = params + 'cmdtype=' + encodeURIComponent(cmd_type) + '&';
if (data_array) {
data_array.forEach(function(item) {
params = params + item[0] + '=' + encodeURIComponent(item[1]) + '&';
});
}
console.log(params);
return new Promise(function(resolve, reject) {
request.open('POST', url, true);
request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
request.onreadystatechange = function() {
if (request.readyState === XMLHttpRequest.DONE) {
if (request.status === 200) {
var response = JSON.parse(request.response);
resolve(response);
}
else {
resolve({error: 'Cant connect!'});
}
}
};
request.send(params);
});
}
提前致谢
菲利普
【问题讨论】:
标签: javascript json loops promise