我知道我要發佈這個,然後得到它的工作,更不用說標題,但...使用async.js在循環中執行異步操作
我處於我需要的情況對我給出的數組中的每個元素執行一些異步代碼,然後在所有元素完成後進行一些檢查。通常情況下,如果我在這裏使用async.js,但是我所做的事情並沒有得到我想要的結果。
所以這是我的邏輯,我想我可以創建一個函數數組,但我做的方式,這似乎有async.js返回我的功能表中的結果。
findLeadThatCanBeTaken : (leads, user, manualTake, cb) =>
if(leads.length == 0) then return cb(null, null)
funcArr = []
self = this
for lead in leads
fun = (callback) ->
console.log(lead.state)
State.get lead.state, (e, state) ->
if !state or state.canBeCalled(self.currentTime())
return callback(null, lead._id.toString)
return callback(null, null)
funcArr.push(fun)
async.parallel funcArr, (e, r) ->
if (e)
return cb(message:'No leads can be called at the current time', null)
id = _.compact(r)
id = r[0] if r.length
if (!id || !id.length)
return cb(message:'No leads can be called at the current time', null)
lead = _.filter leads, (l) -> return l._id.toString() == id
# Code handling
@takeLead(lead, user, cb)
我90%肯定的問題是這陣我創造不被分配了類似的我想是的,但我不知道。任何人都知道我在這裏做錯了什麼?
對不起,這麼長時間,我用打'做()'但那一點都不不工作。結束了,這是我向該陣列推進功能的方式,當時我正在使用與上述不同的東西。結束這是問題! –