我试图使用q.all()和create()函数将用户数组插入到续集数据库中,如下所示:
var users = [{
provider: 'local',
role: 'user',
name: 'Test user 1',
email: 'test@example.com',
password: 'test',
gender: 'f'
}, {
provider: 'local',
role: 'admin',
name: 'Test user 2',
email: 'test2@example.com',
password: 'admin',
gender: 'm'
}];
var userIDs = [];
return q.all([
User.create(users[0]),
User.create(users[1])
])
.then(function(data) {
async.eachSeries(data, function(newUser, cb) {
userIDs.push(newUser.dataValues._id);
cb();
}, function() {
console.log('finished populating users');
deferred.resolve(userIDs);
});
})
.catch(function(err) {
console.log(err);
});
这有效,我可以在以后访问用户ID,但不幸的是,data
中返回的用户并不总是以相同的顺序创建。如何使其成为异步,以便始终首先创建测试用户1,然后一旦完成,创建测试用户2?
感谢您的帮助