我正在撰写Google Chrome扩展程序(在此过程中学到了很多东西)。回调函数有点神秘。我开始研究这个主题来解决我发布的早期问题中的问题,并从@serg发现了一个包含我可以使用的模型的帖子。这是解决方案:
function getKeyWords(action, callback){
chrome.extension.sendRequest(
{
cmd: action
},
function(response)
{
callback(response.keyWordsFound);
}
);
}
var keyWords="";
getKeyWords("sendKeyWords", function(reply) {
keyWordList=reply;
for (var i = 0; i<keyWordList.length; ++i)
{
keyWords=keyWords+" "+keyWordList[i];
}
msgComment1.innerHTML="<strong>"+keyWords+"</strong>";
console.log("Reply is:", keyWords);
});
现在我想扩展这个解决方案,但这次函数必须返回两个参数而不是一个。我将代码修改为我能理解的最佳代码,但它失败了。这是修改后的代码:
function getFacePageDat(action, callback){
chrome.extension.sendRequest(
{
cmd: action
},
function(response)
{
callback(response.ageList, response.seekList);
}
);
}
getFacePageDat("sendSearchPageInfo", function(reply1, reply2) {
profileAgeCityMetro=reply1;
profileSeeks=reply2;
alert("Reply is:", profileAgeCityMetro+" seeks "+profileSeeks);
console.log("Reply is:", profileAgeCityMetro+" seeks "+profileSeeks);
});
不幸的是,在'undefined'的事件处理程序错误中失败了:TypeError:对象#的属性'log'不是函数。我知道如果你掌握了回调,这个问题的答案就相当简单但是我没有。有任何帮助吗?
答案 0 :(得分:0)
Serg可能是正确的:
console.log(“回复是:”,profileAgeCityMetro +“seek”+ profileSeeks);
应该是
console.log(“回复是:”+ profileAgeCityMetro +“寻求”+ profileSeeks);