我使用chrome.runtime.sendMessage
從內容腳本向我的分機發送消息。如何從onMessageExternal監聽器發送響應?
內容腳本:
chrome.runtime.sendMessage(extensionId, {
"some" : "request"
}
},
function(response) {
alert("got response");
}
);
在後臺腳本接收部分看起來像這樣:
背景腳本A
chrome.runtime.onMessageExternal.addListener(function(request, sender, sendResponse) {
console.log("send response");
sendResponse({
"some" : "response"
});
});
這非常適用:send response
登錄到後臺頁面的控制檯,我收到了從內容腳本中提醒got response
。
我再介紹一些異步JavaScript來監聽器:
背景腳本B
chrome.runtime.onMessageExternal.addListener(function(request, sender, sendResponse) {
window.crypto.subtle.generateKey({
name: "RSASSA-PKCS1-v1_5",
modulusLength: 2048,
publicExponent: new Uint8Array([1, 0, 1]),
hash: {
name: "SHA-256"
}
}, false, ["sign"]).then(function(keyPair) {
console.log("send response");
sendResponse({
"some" : "response"
});
});
});
這裏的回調定期調用(意思,send response
記錄到後臺頁面後控制檯內容腳本,但是從來沒有收到迴應(即沒有0警報)
我在做什麼錯 這裏?爲什麼responseCallback
在A中但不在B中?這正是回撥鏈是或者不是?