我遇到了问题,很多时间都无法解决。
后台脚本:
chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
if (request.event === 'login') {
socket.emit('login', request.data, (res, reply) => {
console.log(sendResponse);
sendResponse(1);
});
}
return true;
});
查看脚本:
chrome.runtime.sendMessage({
event: 'login',
data: hash.toString()
}, (res) => {
alert(1);
});
后台脚本:
chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
if (request.event === 'login') {
socket.emit('login', request.data, (res, reply) => {
return new Promise((res,rej)=>{console.log(123);res(213);});
});
}
});
查看脚本:
chrome.runtime.sendMessage({
event: 'login',
data: hash.toString()
}).then((res)=>{alert(res)});
问题:在回调中,我无法通过响应获取任何参数,并且承诺不起作用(第一次尝试过)。
谁能告诉我回调或Promise有什么问题。
UPD 1: 我的意思是在sendResponse(1)中,我将在回调中获得res = undefined。 UPD 2: 还尝试在if语句中将return设置为真。