这可能是一个简单的问题,但是我具有以下功能:

addValues();
function addValues() {
    addObsToMap(function() {
        addMeansToMap();
    });
}


它们的定义如下:

function addObsToMap(callback) {
    console.log("addObsToMap");
    callback();
}

function addMeansToMap() {
    console.log("addMeansToMap");
}


我想做的是在调用“ addMeansToMap”之前先调用“ addObsToMap”,但是当前代码并没有发生这种情况,因为当前在“ addObsToMap”之前返回“ addMeansToMap”。我想念什么?

最佳答案

似乎工作得很好。

但是不同的浏览器和不同的版本可能具有不同的实现。

我要进行的更改将只是传递“ 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 - JavaScript回调似乎无效,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43017688/

10-13 00:33