这可能是一个简单的问题,但我有以下功能:
addValues();
function addValues() {
addObsToMap(function() {
addMeansToMap();
});
}
它们的定义如下:
function addObsToMap(callback) {
console.log("addObsToMap");
callback();
}
function addMeansToMap() {
console.log("addMeansToMap");
}
我想做的是在调用“addMeansToMap”之前调用“addObsToMap”,但当前代码不会发生这种情况,因为“addMeansToMap”当前在“addObsToMap”之前返回。我错过了什么?
最佳答案
看起来工作得很好..
但是不同的浏览器和不同的版本可能有不同的实现。
我要做的更改是仅传递“addMeansToMap”函数作为回调,而不是创建一个新函数来执行它。
addValues();
function addValues() {
addObsToMap(addMeansToMap);
}
function addObsToMap(callback) {
console.log("addObsToMap");
callback();
}
function addMeansToMap() {
console.log("addMeansToMap");
}
这样,如果需要,我们还可以更轻松地将数据从 addObsToMap 传递到 addMeansToMap,而无需全局变量。
addValues();
function addValues() {
addObsToMap(addMeansToMap);
}
function addObsToMap(callback) {
console.log("addObsToMap");
callback("addMeansToMap");
}
function addMeansToMap(arg) {
console.log(arg);
}
关于JavaScript 回调似乎不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43017688/