我正在开发一个Chrome插件项目,陷入了JavaScript问题(我是JS新手)。 这是场景:
chrome.webRequest.onBeforeRequest.addListener
所以...显然不起作用。 但由于我无法更改这些API函数的设计方式,因此无法以易于使用的方式对其进行重构。
chrome.tabs.query
和chrome.webRequest.onBeforeRequest.addListener
均不返回值,而仅接受回调。
和{cancel: true/false}
的行为将基于回调while(currentTab == null) {} // blocks the thread, chrome.tabs.query can't even be executed, infinite loop here...
if(details.url == currentTab){
return {cancel: false};
}else{
return {cancel: true};
}
我尝试旋转锁来创建等待屏障,但是它阻塞了线程并最终冻结了整个事情:
definitions:
documentReport:
type: array
items:
type: object
properties:
incomingDevice:
$ref: '#/definitions/processessingDevice'
required: false
storageDate:
$ref: '#/definitions/storageDate'
任何人都知道如何在不阻塞线程的情况下,基于另一个函数(回调)中设置的值来阻止函数的返回吗?