Как связать JS обещания с ошибками с Parse? - PullRequest
0 голосов
/ 15 февраля 2019

Я в Parse, пытаюсь создать облачную функцию beforeSave для объекта "Профиль", который связан с Пользователем, моя цель - проверить, что нет профиля для этого пользователя или профиля с тем же именем пользователя,проблема заключается в том, что для проверки, существует ли он или нет, мне нужно выполнить запрос найти или получить, и выполнить ошибку с кодом 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, потому что он не существует

...