我正在构建一个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
但我现在面对的情况从未遇到过。
答案 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);
});