我试图在创建User之后在另一个Class:UserInfo中创建一个对应的对象用来存放用户信息。
下面是云函数
function getOrCreateRoles(roleName) {
var roleQuery = new AV.Query(AV.Role)
roleQuery.equalTo('name', roleName);
return roleQuery.first()
.then(function (role) {
if (role) {
return Promise.resolve(role)
} else {
return new AV.Role(roleName).save()
}
})
}
AV.Cloud.afterSave('_User', function (request) {
var user = request.object
return Promise.all([
new UserInfo({user: user}).save(),
getOrCreateRoles('developer')
]).then(function (results) {
var info = results[0],
developerRole = results[1]
user.set('userinfo', info)
var relation = developerRole.getUsers()
relation.add(user)
return Promise.all([
developerRole.save(),
user.save(),
])
}).then(function (results) {
console.log('done')
return Promise.resolve()
})
});
但当我创建一个新用户的时候,userinfo并不会被保存下来。debug的时候发现最后保存并没有执行完成
如果用下面下面代码替换user.set('userinfo', info)的话就可以正常执行。
user.set('userinfo', AV.Object.createWithoutData('UserInfo', info.id))
-
创建时间
17年8月25日
-
最后回复
17年8月25日
-
5
回复
-
2.2K
浏览
-
2
用户