javascript - JavaScript 中的回调函数如何工作

标签 javascript asynchronous callback

我是 JavaScript 回调函数的新手。我花了相当多的时间试图让它发挥作用,但始终未能成功。我有以下功能。我只是想调用 RegistrationFlow() 并让它进入 if(found) 条件,但 getTrueFalse() 总是返回 false。 getTrueFalse() 内的 isRegistered 被设置为 true(使用警报看到)。有人可以帮忙指出我的问题出在哪里吗?非常感谢!

function getTrueFalse() {
    var isRegistered = false;
    var registeredIds = ['APA','BBB'];
    chrome.storage.local.get("registeredId", function (result) {
        id = result["registeredId"];
        for(var i=0; i < registeredIds.length; i++) {
            if(registeredIds[i] === id) {        
                isRegistered = true;
            }
        }
    });  
    return isRegistered;
}

function registrationFlow() {
    chrome.storage.local.get("registered", function(result) {
        if (result["registered"]) {
            var found = getTrueFalse();
            if(found) {
                //do something
            }
        } else {      
            //do something else
        }
    });  
}

最佳答案

这两个函数都在访问本地存储,我不知道为什么。您的注册流程应该是:

function registrationFlow() {
    var found = getTrueFalse();
    if(found) {
        //do something
    }
    else {      
      //do something else
    }  
}

关于javascript - JavaScript 中的回调函数如何工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32958327/

相关文章:

javascript - 将 PNG 从 GET 请求转换为 Node.js 中的可读流

swift - 尝试在一次调用中从 Web 服务获取所有数据

c# - 将 MVC mini-profiler 时间安排到异步任务中

c++ - 操作完成回调编程实践

java - 构建 Android 库时,我可以使用什么模式来支持 Activity 中配置的回调

javascript - 文件读取器 API : how to read files synchronously

javascript - 触摸设备上的 jScrollPane - 拖动按钮是反向的

javascript - Angular 应用程序中的 Chartjs 插件标签在悬停时意外移动

javascript - 异步/等待在我的示例中不起作用

scala - 从 native Javascript 处理程序调用 Scala.js 代码