摘要:面試題題目頁(yè)面上有一個(gè)輸入框,兩個(gè)按鈕,按鈕和按鈕,點(diǎn)擊或者分別會(huì)發(fā)送一個(gè)異步請(qǐng)求,請(qǐng)求完成后,結(jié)果會(huì)顯示在輸入框中。
面試題題目
頁(yè)面上有一個(gè)輸入框,兩個(gè)按鈕,A按鈕和B按鈕,點(diǎn)擊A或者B分別會(huì)發(fā)送一個(gè)異步請(qǐng)求,請(qǐng)求完成后,結(jié)果會(huì)顯示在輸入框中。
題目要求,用戶(hù)隨機(jī)點(diǎn)擊A和B多次,要求輸入框顯示結(jié)果時(shí),按照用戶(hù)點(diǎn)擊的順序顯示,舉例:
用戶(hù)點(diǎn)擊了一次A,然后點(diǎn)擊一次B,又點(diǎn)擊一次A,輸入框顯示結(jié)果的順序?yàn)橄蕊@示A異步請(qǐng)求結(jié)果,再次顯示B的請(qǐng)求結(jié)果,最后再次顯示A的請(qǐng)求結(jié)果。
思考當(dāng)時(shí)被問(wèn)到的時(shí)候,幾個(gè)想法
寫(xiě)個(gè)高階函數(shù),處理異步請(qǐng)求
怎么保證順序,我是想將其放入數(shù)組中,然后按順序執(zhí)行
當(dāng)時(shí)也沒(méi)寫(xiě)出來(lái),但覺(jué)得很有意思?;厝ニ伎紝?shí)踐來(lái)一下代碼:
/** * A的請(qǐng)求;pA(promise對(duì)象) * B的請(qǐng)求;pA(promise對(duì)象) * @click 事件函數(shù) handler */ let arr = [] let it function* main() { //進(jìn)來(lái)的是pA,pB封裝后的方法 const data = yield arr.unshift()() if(arr.length > 0) { it = main() it.next() } } it = main() //封裝pA,pB的請(qǐng)求 function pn(promise) { return promise.then(res => it.next(res)) } //當(dāng)點(diǎn)擊按鈕發(fā)送請(qǐng)求時(shí),將相應(yīng)的請(qǐng)求加入數(shù)組中 function handler(pn) { arr.push(pn) //數(shù)組不為空說(shuō)明請(qǐng)求觸發(fā)中 if(arr.length = 0) { it.next() } }
說(shuō)明
點(diǎn)擊按鈕時(shí),先發(fā)放入請(qǐng)求;數(shù)組為空說(shuō)明,還沒(méi)執(zhí)行;就先執(zhí)行;不為空,則加入數(shù)組中,等待執(zhí)行
利用迭代器,遍歷數(shù)組,執(zhí)行請(qǐng)求
封裝函數(shù)fn,思路來(lái)自之前看的Generator的異步請(qǐng)求方式
總結(jié)以上是我自己思路,覺(jué)得蠻有意思的。寫(xiě)下來(lái)記錄一下
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/105474.html
摘要:但這兩個(gè)對(duì)象的原型指向了同一個(gè)實(shí)例對(duì)象,這個(gè)實(shí)例對(duì)象同樣是存在棧內(nèi)存中的然后指向了一個(gè)對(duì)象。實(shí)際是在的實(shí)例對(duì)象增加一個(gè)屬性,并將屬性賦值為,但它并沒(méi)有修改原型鏈上的屬性。側(cè)重理解的指向問(wèn)題 直接先貼題目吧 function A() { this.name = a this.color = [green, yellow] } function B() { ...
摘要:正如我標(biāo)題所說(shuō),簡(jiǎn)歷被拒。看了我簡(jiǎn)歷之后說(shuō)頭條競(jìng)爭(zhēng)激烈,我背景不夠,點(diǎn)到為止。。三準(zhǔn)備面試其實(shí)從三月份投遞簡(jiǎn)歷開(kāi)始準(zhǔn)備面試到四月份收,也不過(guò)個(gè)月的時(shí)間,但這都是建立在我過(guò)去一年的積累啊。 本文是 無(wú)精瘋 同學(xué)投稿的面試經(jīng)歷 關(guān)注微信公眾號(hào):進(jìn)擊的java程序員K,即可獲取最新BAT面試資料一份 在此感謝 無(wú)精瘋 同學(xué)的分享 目錄: 印象中的頭條 面試背景 準(zhǔn)備面試 ...
摘要:正如我標(biāo)題所說(shuō),簡(jiǎn)歷被拒??戳宋液?jiǎn)歷之后說(shuō)頭條競(jìng)爭(zhēng)激烈,我背景不夠,點(diǎn)到為止。。三準(zhǔn)備面試其實(shí)從三月份投遞簡(jiǎn)歷開(kāi)始準(zhǔn)備面試到四月份收,也不過(guò)個(gè)月的時(shí)間,但這都是建立在我過(guò)去一年的積累啊。 本文是 無(wú)精瘋 同學(xué)投稿的面試經(jīng)歷 關(guān)注微信公眾號(hào):進(jìn)擊的java程序員K,即可獲取最新BAT面試資料一份 在此感謝 無(wú)精瘋 同學(xué)的分享目錄:印象中的頭條面試背景準(zhǔn)備面試頭條一面(Java+項(xiàng)目)頭條...
摘要:說(shuō)明最近看到這樣一段代碼問(wèn)三行的輸出分別是什么覺(jué)得有點(diǎn)意思,和大家一起來(lái)聊聊。說(shuō)到這里,這道題基本上可以解決了,希望大家能聽(tīng)明白我上面說(shuō)的話(huà),下面的就簡(jiǎn)單了。 說(shuō)明 最近看到這樣一段代碼 function fun(n,o){ console.log(o); return { fun:function(m){ return fun...
閱讀 1101·2021-11-15 18:00
閱讀 2815·2021-09-22 15:18
閱讀 1977·2021-09-04 16:45
閱讀 758·2019-08-30 15:55
閱讀 3870·2019-08-30 13:10
閱讀 1345·2019-08-30 11:06
閱讀 1994·2019-08-29 12:51
閱讀 2302·2019-08-26 13:55