js generator的兩個實際應用

2022-07-25 03:21:09 字數 777 閱讀 1791

generator作為乙個用來操作非同步的狀態機, 遇到yield停止, 通過呼叫next()來繼續操作。  今天就用generator來舉例兩個實際開發中的應用。

function

draw(count) 次機會!`);

}, 1000);

}function

generatordraw(count)

}let begindraw = generatordraw(3); //

這個3一般是從服務端獲取 開始呼叫;

const btn = document.createelement('button');

btn.innertext = '**';

btn.addeventlistener('click', function

())document.body.addpendchild(btn);

這樣通過 每次點選按鈕就呼叫一次next 來實現次數的遞減,當然**的邏輯每次都會執行, 當然你也可以在每次執行邏輯的時候, 讓按鈕禁止點選。這樣就更加嚴謹一點。

以前的長輪詢都是通過定時器來不斷的訪問給定的介面。 鑑於現在的瀏覽器對websocket的支援已經很好了,所以大部分都可以直接使用websocket,  但可以通過這個來模擬一下使用generator的思路。

function *ajax() );

}, 200)

})}function

pull() , 1000)

} else

})}pull();

python兩個佇列實現乙個棧和兩個棧實現乙個佇列

棧 先進後出 佇列 先進先出 思路兩個棧實現乙個佇列 思路 兩個棧 都是先進後出 push新增資料的時候,將data資料push到stack1 中,pop資料的時候,先判斷stack2種是否有資料 如果有資料的話,直接pop stack2中的資料 因為pop是直接彈出最後乙個資料 如果stack2中...

如何用兩個棧實現乙個佇列以及用兩個佇列實現乙個棧

一 兩個棧實現乙個佇列 設兩個棧分別為stack1和stack2,stack1主要負責 進入 模擬的是 隊尾 stack2主要負責 彈出 模擬的是 隊頭 具體思路如下 1 對於 資料入隊 操作,只需要將資料壓入stack1即可 2 對於 資料出隊 操作,若stack2非空,直接彈出棧頂元素 若sta...

使用matlab 判斷兩個矩陣是否相等的例項

數學意義的相等 all a b i程式設計客棧sequal a,b 但須注意的是 b a,未必能保證 isequal a,b 返回真,因為如果 a 中包含nan,因為按照定義,nan nan gwww.cppcns.comt a 1程式設計客棧,nan b a isequal a,b 0 nan n...