从嵌套函数返回值

时间:2014-05-23 19:46:27

标签: javascript function google-chrome-extension nested

我正在构建一个chrome扩展程序并且卡在这里。这是一个简单的JavaScript问题,但由于我不是javascript的专家,任何帮助将不胜感激。

function active()
{
   chrome.extension.sendRequest({cmd:"mycommand"}, function(callback)
   {
       if(callback.mydata)
       {
           return true;
       }
       else
       {
          return false;
       }
   });
}

console.log(active());    //prints undefined

我知道如果它是一个简单的嵌套函数案例,我需要先调用内部函数,比如

function active()
{
    function inner()
    {
         //some task
         return true;
    }
    return inner();
}

console.log(active());   //works

但我现在面对的情况从未遇到过。

1 个答案:

答案 0 :(得分:0)

chrome.extension.sendRequest({cmd:"mycommand"}, function(callback)
   {
       if(callback.mydata)
       {
           return true;
       }
       else
       {
          return false;
       }
   });

这是一个异步请求。 阅读本文以获取更多信息http://msdn.microsoft.com/en-us/library/windows/apps/hh700330.aspx 为了使它工作,你将不得不使用这样的回调方法:

 function active(callbackToLogResult) {

 chrome.extension.sendRequest({cmd:"mycommand"}, function(callback)
 {
     if(callback.mydata)
     {
         callbackToLogResult(true);
     }
     else
     {
         callbackToLogResult(false);
     }
 });
 }

 active(function(result){
     console.log(result);
 });