发送消息和回叫/承诺

时间:2018-06-22 15:32:32

标签: javascript google-chrome-extension callback promise

我遇到了问题,很多时间都无法解决。

  1. 回调

后台脚本:

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);
        });
  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设置为真。

0 个答案:

没有答案