javascript - $.getJSON 回调帮助 - 不是函数

标签 javascript callback getjson

我的上下文如下:

我有一个变量“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/

相关文章:

android - 从其他类回调 Activity

jquery - 当只有一项需要循环时 $.each() 不起作用?

javascript - 阻止网站请求外部src

javascript - 我怎样才能让jquery倒计时重定向到重置文件

javascript - 谷歌地图 API JavaScript : nearbysearch callback function not calling

javascript - 按顺序加载 API 请求 (JavaScript)

javascript - 如何使用 jquery $.get 在查询字符串参数中传递 json

javascript - 如何将 javascript 对象格式化为模式数据的 JSON 对象?

javascript - 如何将数组数组的字符串转换为Javascript数组数组?

jquery - .animate() 的回调被调用两次 jquery