ฉันพยายามส่งข้อความระหว่างสคริปต์เนื้อหาและส่วนขยาย
นี่คือสิ่งที่ฉันมีในเนื้อหาสคริปต์
chrome.runtime.sendMessage({type: "getUrls"}, function(response) {
console.log(response)
});
และในสคริปต์พื้นหลังฉันมี
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
if (request.type == "getUrls"){
getUrls(request, sender, sendResponse)
}
});
function getUrls(request, sender, sendResponse){
var resp = sendResponse;
$.ajax({
url: "http://localhost:3000/urls",
method: 'GET',
success: function(d){
resp({urls: d})
}
});
}
ตอนนี้ถ้าฉันส่งการตอบกลับก่อนการโทร ajax ในgetUrls
ฟังก์ชั่นการตอบสนองจะถูกส่งเรียบร้อยแล้ว แต่ในวิธีการที่ประสบความสำเร็จของการโทร ajax เมื่อฉันส่งการตอบกลับมันไม่ได้ส่งเมื่อฉันเข้าสู่การดีบักฉันจะเห็นว่า พอร์ตนั้นเป็นโมฆะภายในโค้ดของsendResponse
ฟังก์ชัน