我有两个同时执行的函数,但只有在另一个函数返回时才需要调用。调用这两个函数有一些复杂性,所以不幸的是,我不能将其中一个函数放在另一个函数中并添加一个回调。
以下是两个功能:
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函数?
答案 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);
});