1
使用Q和請求模塊,我試圖將一個動態數量的延遲推入一個數組,因此我可以稍後調用Q.all。我已經閱讀,下面的內容儘可能接近,但不起作用。使用Q.js創建一個延遲數組
我想我得到Q.all部分,但它是我應該如何存儲數組中的每個延遲是我被絆倒。
_ = require 'underscore'
request = require 'request'
Q = require 'q'
class Github
## Filter issues by "important Label"
getIssues: (callback) ->
options ...
request options, (err, resp, body) =>
issues = _.filter JSON.parse(body), (issue) ->
...
## I'm attempting to store my promises in this `deferreds`
deferreds = @getPulls issues
## to test I'm getting something, and I do
setTimeout (=> console.log @pulls.length), 2500
## but this gives me 0
Q.all(deferreds).then((a,b) =>
console.log 'Q all', @pulls.length
)
# Get PR info for important issues
getPulls: (issues) ->
deferreds = []
@pulls = []
for issue in issues
options = ...
deferred = Q.defer()
deferreds.push request options, (err, resp, body) =>
@pulls.push JSON.parse body
deferred.resolve(JSON.parse(body))
return deferred.promise
return deferreds
module.exports = Github