在另一个函数返回时实现回调函数或执行函数

时间:2014-01-29 18:34:06

标签: javascript jquery

我有两个同时执行的函数,但只有在另一个函数返回时才需要调用。调用这两个函数有一些复杂性,所以不幸的是,我不能将其中一个函数放在另一个函数中并添加一个回调。

以下是两个功能:

function loadJson = function(json, url, link) {
    /* blackbox function called by a process */
    return json;
}

function onLoad = function () {
    /* do some actions after json is loaded and returned */
}

有没有办法检测到loadJson已经返回,然后才调用onLoad函数?

1 个答案:

答案 0 :(得分:1)

您只需将回调传递给loadJson作为参数,并在返回之前调用它:

var loadJson = function(json, url, link, callback) {
    //Your mysterious secret and complex function;
    callback(json);
    return json;
}

var onJsonLoaded = function(json) {
    //do some actions
    console.log(json);
}

然后,这样称呼它:

loadJson(YOUR, PARAMETERS, HERE, onJsonLoaded);

或者您甚至可以内联回调,保存变量:

loadJson(YOUR, PARAMETERS, HERE, function(json) {
    //do some actions
    console.log(json);
});