JavaScript 回调似乎不起作用

标签 javascript

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

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/

相关文章:

c# - 如何知道上传的文件是否被更改?

javascript - 阻止 Javascript 事件影响子元素

php - 使用 Javascript 显示不断变化的 php 值?

javascript - AngularJS:从过滤器获取动态数组,然后将其用于 forEach 方法

php - 使用 onclick javascript 函数回显链接的正确方法

javascript - 将 Angular 8 开发工具更新到 15 开发工具后,调试器无法在浏览器开发工具上运行

javascript - 迭代深度嵌套的 JavaScript 对象并获取键路径

javascript - 即使带有 CORS header ,HTML Canvas 也会受到污染

javascript - 访问vue数据组件

javascript - 通过javascript检测ipad/iphone webview