var userQuery = new Parse.Query(Parse.User);
userQuery.limit(500);
if(helpers.isDefined(userSkip)){
userQuery.skip(userSkip);
}
var userCount = 0;
userQuery.find().then(function (users) {
_.each(users, function(user){
console.log("Got user " + user.get("displayName"));
var viewHistoryQuery = new Parse.Query("ViewHistory");
viewHistoryQuery.equalTo("user", user);
viewHistoryQuery.find().then(function(){
console.log("Got here");
}).then(function(){
console.log("View History success");
}, function (error) {
console.log("View History error");
});
userCount++;
});
})
.then(function () {
status.success("Processed " + userCount + " users");
}, function (error) {
status.error(JSON.stringify(error));
});
Got here
永远不会打印到控制台。我得到的唯一输出是:
I2015-08-24T15:04:03.424Z]Got user #####
I2015-08-24T15:04:03.424Z]Got user #####
Input: {}
Result: Processed 500 users
用户被多次打印,我只是删除了用户名。真的没有多大意义。承诺应该在_.each循环中运行,而thenable应该打印其中一条消息。它表现得好像它不存在。我们知道用户正在被循环访问,但是下一个承诺被忽略了。