我的上下文如下:
我有一个变量“qq” - 我想通过 API 调用将数据分配给该变量,分配数据后,我就会在绘制/绑定(bind)过程中使用该数据。
API 调用和分配给 var 'qq' 工作正常 - 但我似乎无法让我的回调工作 - 我不断收到错误:callback() 不是函数
这就是我的代码当前的样子:
var qq = [];
// binding function - to be run after data loader has completed
function sayIamDone() {
alert('I Am Done');
// do data bindings with qq
}
// load data from api into var qq
function dataLoader(inp,callback) {
let url = 'http://localhost:65232/api/layercolor/' + inp;
console.log(url);
$.getJSON(url,function(result) {
qq = eval('({' + result + '})');
//console.log(qq);
callback();
});
}
// call data loader
dataLoader('Prov', sayIamDone());
根据上面的内容,我在 Chrome 控制台中收到以下错误:
未捕获类型错误:回调不是函数
我尝试了以下方法 - 似乎有效:
dataLoader('Prov', function () { alert('I Am Done');});
但它在我的上下文中并不理想,因为我想调用 dataLoader('Prov',XXX()) ,其中 XXX() 可能是使用 qq 中新加载的值的许多不同函数
请问我在哪里错过了船,有什么建议吗?
最佳答案
通过运行 dataLoader('Prov', sayIamDone());
,您将把 sayIamDone< 的结果传递给
函数。您必须在不带括号的情况下传递它才能传递函数本身。dataLoader
/
dataLoader('Prov', sayIamDone);
关于javascript - $.getJSON 回调帮助 - 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48802810/