JavaScript中的回调函数是如何工作的

JavaScript中的回调函数是如何工作的,javascript,asynchronous,callback,Javascript,Asynchronous,Callback,我不熟悉javascript回调函数。我已经花了相当长的时间试图让这项工作,但一直达不到。我有以下功能。我只想调用registrationFlow()并使其进入if(found)条件,但getTrueFalse()总是返回false。正在将getTrueFalse()内的isRegistered设置为true(使用警报进行查看)。有人能帮我指出我的问题在哪里吗?非常感谢 函数getTrueFalse(){ var isRegistered=false; var registeredIds=['

我不熟悉javascript回调函数。我已经花了相当长的时间试图让这项工作,但一直达不到。我有以下功能。我只想调用registrationFlow()并使其进入if(found)条件,但getTrueFalse()总是返回false。正在将getTrueFalse()内的isRegistered设置为true(使用警报进行查看)。有人能帮我指出我的问题在哪里吗?非常感谢

函数getTrueFalse(){ var isRegistered=false; var registeredIds=['APA','BBB']; chrome.storage.local.get(“registeredId”,函数(结果){ id=结果[“registeredId”]; for(var i=0;i}在回调将值存储在
isRegistered
中之前,函数返回。函数chrome.storage.local.get是异步的

您可以通过创建自己的回调函数来解决这个问题

函数getTrueFalse(回调){ //做事 回调(真|假); }); getTrueFalse(函数(v){ console.log('返回值',v);
});函数在回调将值存储在
isRegistered
中之前返回。函数chrome.storage.local.get是异步的

您可以通过创建自己的回调函数来解决这个问题

函数getTrueFalse(回调){ //做事 回调(真|假); }); getTrueFalse(函数(v){ console.log('返回值',v);
});两个函数都在访问本地存储,我不知道为什么。您的注册流程应为:

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

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

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