gpt4 book ai didi

javascript - 无法将父函数参数传递给子匿名函数

转载 作者:行者123 更新时间:2023-11-29 19:45:33 26 4
gpt4 key购买 nike

在我的 chrome 扩展程序的一个背景文件中,我正在检查 cookie 并遇到了问题。在我的函数 chrome.cookies.get({"url": domain, "name": name},function(cookie) {}); 我能够获取 cookie 对象并将其传递给最后一个参数(匿名函数)作为变量 cookie 并使用 cookie.value 访问它的值。

问题是我只能从父函数发送返回响应,而不能从 chrome.cookies.get 调用中的嵌套匿名函数发送响应。

在我下面的示例中,我能够返回一个带有 value1 的响应(通过另一个页面上的警报验证),但永远不会返回 value2 ......在做完之后大量阅读我认为我将问题缩小为范围错误...我的意思是我的响应调用sendResponse(父函数中的参数)未被嵌套匿名函数访问.

function getCookies(request, sender, sendResponse, domain, name) {
chrome.cookies.get({"url": domain, "name": name}, function(cookie) {
sendResponse({"myvar":"value2"}); //DOES NOT WORK
if(cookie){
anotherFunction(cookie.value);
}else{
anotherFunction("0");
}
});
sendResponse({"myvar":"value1"}); // WORKS
}

所以基本上,我只需要找出一些方法将我的sendResponse 参数下推到匿名函数;或重新创建不会导致此范围界定问题的类似方法。对此问题的任何帮助或指导将不胜感激。提前感谢您的宝贵时间。

最佳答案

引用这个问题Two way communication is returning error in Chrome Extension ,您是否在 onMessage 监听器结束时返回了 true?在我的案例中有效。

chrome.extension.onMessage.addListener(function(request, sender, sendResponse) { 
// your getCookies call
return true;
});

关于javascript - 无法将父函数参数传递给子匿名函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20021587/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com