Tôi muốn sử dụng async chờ đợi trong một listener onMessage:chrome.runtime.onMessage phản ứng với async chờ
chrome.runtime.onMessage.addListener(async (request, sender, sendResponse) =>{
var key = await getKey();
sendResponse(key);
});
Tuy nhiên tôi nhận được xác định khi tôi gửi một tin nhắn.
Từ tài liệu cho chrome.runtime.onMessage.addListener:
Chức năng này trở nên không hợp lệ khi trở về sự kiện người nghe, trừ khi bạn trở thành sự thật từ các event listener để chỉ bạn muốn gửi một phản ứng không đồng bộ (điều này sẽ giữ cho kênh thông báo mở đến đầu kia cho đến khi sendResponse được gọi).
Tính năng này hoạt động khi tôi sử dụng gọi lại.
chrome.runtime.onMessage.addListener(async (request, sender, sendResponse) =>{
getKey(key => {
sendResponse(key);
});
return true;
});
Tuy nhiên, tôi muốn tận dụng cú pháp chờ đợi. Nhưng nó không có vẻ để làm việc và vẫn trả về undefined:
chrome.runtime.onMessage.addListener(async (request, sender, sendResponse) =>{
var key = await getKey();
sendResponse(key);
return true;
});