所有代码都在此jsfiddle中,问题是该函数未返回预期值,但确实在控制台上打印了该代码,我不确定我做错了什么吗?
编辑:这就是所有代码,我返回的是html
,但从未得到它的值
//Returns all assistants to specific event
function getAssistants(id) {
let uri = "https://api.myjson.com/bins/uqndk";
$.getJSON(uri, function(data) {
let html = "";
$.each(data.events[id].assistants, function(index, value) {
if (value == 'undefined' || value == null) {
html = '<li class="collection-item">No hay asistentes registrados.</li>';
} else {
html += '<li class="collection-item">' + value.name + '</li>';
}
});
//console.log(html);
return html;
});
}
$("#assistants").append(getAssistants(1));
答案 0 :(得分:1)
发生此问题是因为您尝试异步获取返回结果,但实际上是异步的
在此处查看代码中的修改:
a.value >= b.start_value and a.value <= b.end_value
//Returns all assistants to specific event
function getAssistants(id) {
let uri = "https://api.myjson.com/bins/uqndk";
$.getJSON(uri, function(data) {
let html = "";
$.each(data.events[id].assistants, function(index, value) {
if (value == 'undefined' || value == null) {
html = '<li class="collection-item">No hay asistentes registrados.</li>';
} else {
html += '<li class="collection-item">' + value.name + '</li>';
}
});
//console.log(html);
$("#assistants").append(html);
});
}
getAssistants(1);
在此解决方案中,我将您的代码更改为将结果放入get块中,以便它可以工作...
另一种解决方案: 您也可以通过在ES6中使用async / await来解决此问题,答应... etc检查此示例:Example
答案 1 :(得分:0)
您要做的只是设置一个变量。您实际上需要console.log
:
$.each(data.events[id].assistants, function(index, value) {
if (value == 'undefined' || value == null) {
html = '<li class="collection-item">No hay asistentes registrados.</li>';
} else {
html += '<li class="collection-item">' + value.name + '</li>';
}
console.log(html);
});
答案 2 :(得分:0)
您可以更改代码吗
insted of return html; in function --> $("#assistants").append(html);
on function call just call function like : getAssistants(1);