0
人。私はユーザーを移行しようとしていますが、その約束は決して呼び出されません。Q.配列からの約束を呼び出すことはありません
User = mongoose.model 'User'
User.find({"hisId" : {$exists : true}}).exec (err, doc)->
if err
console.error err
process.exit()
if not doc or doc.length < 1
process.exit()
i = 0
promiseArray = []
while i < doc.length
updateFunc = (doc) ->
defer = Q.defer()
User.update({
"_id" : ObjectId(doc[i].juniorId)
"friends.user": ObjectId(doc[i]._id)
},{
$set:
"friends.$.canAdmin" : true
}, (err, updateResult) =>
if err
console.error err
defer.reject()
defer.resolve()
)
return defer.promise
updateFunc.bind(null, doc)
promiseArray.push updateFunc
i++
Q.all(promiseArray).then(->
console.log 'Why did get here before promises all fulfilled?'
).done (->
process.exit()
)
Q.promiseソリューションで試してみましたが、どちらも動作しません。プロミス配列は関数でいっぱいです、私はそれをチェックしました。
ああ、私はそれを完全に逃しました。ありがとう。 –