嘿,Chrome开发人员,如何检测chrome.extension.sendRequest
何时失败?我尝试了这个,没有骰子:
chrome.extension.sendRequest({ /* message stuff here */ }, function(req){
if(req == null || chrome.extension.lastError == null){
alert("No response. :(");
}
});
但是发生的是,回调甚至不会触发,这是我一半的预期。有什么方法可以检测sendRequest何时失败?
谢谢!
最佳答案
您可以用try{}catch(err){}
包围它,以捕获所有引发的错误,但是如果没有响应,也没有空响应,则不会引发错误。
这本来可以通过设计完成的,以使消息接收者能够完成。例如,它可能涉及几个Web服务请求或可能需要一段时间的ajax请求。
如果知道响应需要多长时间,则应该实现一个超时(如果sendRequest函数包含一个超时,那将是很好的选择)
因此,您可以执行以下操作:
var noResponse = setTimeout(100, function() {
alert('No response received within 100ms!');
});
chrome.extension.sendRequest({ /* message stuff here */ }, function(req){
clearTimeout(noResponse);
alert('I have a response!');
});
关于javascript - 检测chrome.extension.sendRequest失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10082478/