0
我需要在我的Chrome擴展中製作3個新選項卡,並在每個選項卡創建之間延遲幾秒鐘,但是當我使用chrome.tabs.create
一個for循環for(i=0;i<3;i++)
與setTimeout(function()
像這樣我需要延遲打開從Chrome擴展的設置數量的選項卡
for(i=0;i<3;i++){
setTimeout(function() {
search();
}, 5000);
它只是等待超時完成,然後打開所有3個標籤一次。我曾看過Chrome extension: open tabs with delay,但情況不同。
這會在第一個選項卡打開之前引入延遲,但在創建一個選項卡後它不會繼續執行。我不知道這是否與我的搜索功能有關,或者問題是由於隨後關閉的按鈕激活了循環而造成的。 [Code](http://pastebin.com/qRTp60Gq) –
@JoeSchroedl,這是因爲你的'search()'函數執行時間過長,'setTimeout'表示在任意數量的毫秒後將任務添加到隊列中。如果隊列爲空,則代碼立即執行;如果隊列不是空的(你的search()函數仍在運行),代碼必須等待輪到它。 –
這可能是這樣,但是會佔用大量隊列以致代碼不會繼續?我在循環內嘗試了更簡單的函數,它們都只發生一次。 –