我正在解析中,试图为与用户相关的对象“个人资料”创建一个beforeSave云功能,我的目标是验证该用户或与用户名相同的个人资料没有任何个人资料,问题是要验证它是否存在,我必须运行查询find或get,并以代码101 OBJECT_NOT_FOUND失败,并在该失败中运行另一个查询,并再次失败,以允许创建“配置文件”宾语。 我不知道该怎么实现。
https://docs.parseplatform.org/js/guide/是文档,当出现错误时需要继续操作时,不会解释这种情况。
var beforeSaveProfile = (request) => {
var profile = request.object;
var user = request.user;
profile.id = user.id;
//check if profile not exist
const Profile = Parse.Object.extend("Profile");
const query = new Parse.Query(Profile);
query.get(user.id).then(() => {
throw "Profile exists";
}, (error) => {
if(error.code === 101){ // ObjectNotFound
//check if username not exists
const query = new Parse.Query(Profile);
query.equalTo('userName',profile.get('userName'));
return query.find();
}else{
throw "Error: "+error.message;
}
}).then(() => {
throw "Username unavailable";
}, (error) => {
if(error.code !== 101){ // ObjectNotFound
throw "Error: "+error.message;
}
});
}
我希望保存完成没有错误,但是它返回101,尽管我希望这会在调试时抛出在此看到的错误消息...“ get(user.id)”可以正常工作接受错误101并运行查询以检查用户名,但是在此之后,当错误应该进入错误101时将抛出“ Username unavailable”,因为它不存在