我發(fā)現(xiàn)一個很嚴(yán)重的問題,在一頁代碼中,和chrome相關(guān)的代碼(例如chrome.tabs.……)全部都被放到普通代碼后面去執(zhí)行了,導(dǎo)致執(zhí)行順序大亂。例如以下的一個測試文件,每次打開一個新tab,就會輸出a、b、c、d、e 五個字符,協(xié)助判斷代碼執(zhí)行的順序,結(jié)果發(fā)現(xiàn)執(zhí)行順序大大出乎我的意料,代表chrome相關(guān)的代碼被放置后面執(zhí)行了??墒俏也幌胱屗鼈兎质裁磈s還是chrome的代碼,就想從上到下執(zhí)行,該怎么辦?代碼下載(里面有個popup.js和popup.html是多余的,可無視)以下是background.js,其他的就不貼了 chrome.runtime.onMessage.addListener(function(request, sender, sendResponse)
{
if(request.msgcheck=="contentjs")
{
console.log("a");
chrome.tabs.get(sender.tab.id, function(tab){console.log("b")});
console.log("c");
for(var i=0;i<2;i++)
{
console.log("d");
chrome.tabs.get(sender.tab.id, function(tab){console.log("e")});
}
//我以為最終結(jié)果是a,b,c,d,e,d,e,結(jié)果特么居然是a,c,d,d,b,e,e,連循環(huán)都能割裂,為何這么屌!
}
});
好像chrome的API代碼全部被強制放到正常js代碼后面執(zhí)行了,怎樣才能不分代碼類型按順序執(zhí)行?
慕容3067478
2018-05-28 10:19:00