chrome.runtime.onMessage.addListener(
function(props) {
switch(props) {
case props.request_type = 'msg':
websocketClass.msgSubmit(props.data)
break;
case props.request_type = 'url':
websocketClass.msgSubmit(props.data)
break;
case props.request_type = 'his':
sendResponse({his: websocketClass.messages});
        }
    }
);

मेरे पास एक समस्या है, हालांकि मेरे पास @ प्रकार/क्रोम जोड़ा गया है, SendResponse अभी भी उपरोक्त त्रुटि देता है। मैं यह काम कैसे कर सकता था?

0
Michael Barr 15 अगस्त 2021, 01:32

1 उत्तर

सबसे बढ़िया उत्तर
  1. sendResponse एक वैश्विक प्रतीक नहीं है, यह श्रोता का एक पैरामीटर है लेकिन आपने केवल props निर्दिष्ट किया है, देखें दस्तावेज़ीकरण

  2. switch कभी मेल नहीं खाएगा, यह केवल request_type को मानों ('msg', 'url', 'उसका') से अधिलेखित कर देता है।

chrome.runtime.onMessage.addListener((msg, sender, sendResponse) => {
  switch (msg.request_type) {
    case 'msg':
    case 'url':
      websocketClass.msgSubmit(msg.data);
      break;
    case 'his':
      sendResponse({ his: websocketClass.messages });
    case 'foo':
      callFunctionThatReturnsPromise(msg).then(sendResponse);
      // Keeps the internal channel open for sendResponse after this listener exits.
      // Only use `return true` if you really invoke sendResponse asynchronously.
      return true;
  }
});
1
wOxxOm 15 अगस्त 2021, 08:10