chrome.runtime.onMessage response with async await : <p>I want to use async await in an onMessage listener:</p>

<pre><code>chrome.runtime.onMessage.addListener(async (request, sender, sendResponse) =&gt;{
    var key = await getKey();
    sendResponse(key);
});
</code></pre>

<p>However I get undefined when I send a message.</p>

<p>From the documentation for chrome.runtime.onMessage.addListener:</p>

<blockquote>
  <p>This function becomes invalid when the event listener returns, unless
  you return true from the event listener to indicate you wish to send a
  response asynchronously (this will keep the message channel open to
  the other end until sendResponse is called).</p>
</blockquote>

<p>This works when I use a callback.</p>

<pre><code>chrome.runtime.onMessage.addListener(async (request, sender, sendResponse) =&gt;{
    getKey(key =&gt; {
        sendResponse(key);
    });
    return true;
});
</code></pre>

<p>However I would like to leverage the await syntax. But it does not seem to work and still returns undefined:</p>

<pre><code>chrome.runtime.onMessage.addListener(async (request, sender, sendResponse) =&gt;{
    var key = await getKey();
    sendResponse(key);
    return true;
});
</code></pre>
