延時問題的鏈式呼叫

2021-10-24 04:19:01 字數 1323 閱讀 8986

問題:

function

queue()

實現佇列queue的兩個方法:

add(timeout, callback)

-- 給佇列中新增方法

start()

-- 執行佇列中的方法,執行完之後佇列清空

實現鏈式呼叫

例如:var que =

newqueue()

que.

add(

1000

,function()

).add(

2000

,function()

).add(

1000

,function()

).start()

// 輸出1 2 3 時間間隔為1s 2s 1s

解法:利用while迴圈來延時

queue.prototype.

add=

function

(time, func)

func()

}))return

this

}queue.prototype.

start

=function()

)this

.arr =

return

this

}借助promise的鏈式呼叫

class

queue

add(timeout, callback)

)return

this

}// promise方法

start()

)for

(let i=

0;i<

this

.queue.length;i++)=

this

.queue[i]

promise = promise.

then((

)=>

, timeout)})

})}this

.queue =

null}}

async

/await

class

queue

add(timeout, callback)

)return

this

}// async/await方法

async

start()

=this

.queue[i]

await

newpromise

((resolve)

=>

,timeout)})

}}}

閉包的鏈式呼叫問題

function fun n,o var a fun 0 a.fun 1 a.fun 2 a.fun 3 undefined,var b fun 0 fun 1 fun 2 fun 3 undefined,var c fun 0 fun 1 c.fun 2 c.fun 3 undefined,問 三...

Promise 巢狀鏈式呼叫的問題

promise鏈式呼叫巢狀的問題,哈哈哈 雖然這個問題在正常開發中應該不會遇到,但是誰讓咱們是程式設計師呢,就是喜歡搞事情,這個問題就是搞promise鏈式巢狀呼叫 new promise function promise1 resolve,reject then function then1 th...

jQuery鏈式呼叫

鏈式 input type button eq 0 click function end eq 1 click function end eq 2 toggle function function 找出type型別為button的input元素 找到第乙個按鈕,並繫結click事件處理函式 返回所有...