2015-04-20 6 views
3

Я создаю приложение с отношениями с друзьями, используя Code Cloud Code.Обратный вызов кода разбора парсера не работает

Когда Алиса посылает Бобу запрос друга, это уведомление типа 71. Когда Боб отвечает он посылает уведомление типа 8.

На сервере, когда уведомление типа 8 посылаемые, первый некоторые дружеские отношения продолжаются. Это: удаление из обоих пользователей друг друга «потенциального списка друзей» и добавление в «список друзей» вместо этого.

Впоследствии уведомление типа 71 должно быть изменено на уведомление типа 1.

По каким-то причинам я боролся 24 часа, чтобы заставить его работать. Я просто не могу выполнять эти две функции один за другим: второй никогда не выполняется. Вот мой код

Parse.Cloud.afterSave("Notification", function(request, response) { 

Parse.Cloud.useMasterKey(); 
var downQuery = new Parse.Query("Notification"); 

var namnamA = request.object.get('nameA'); 
var namnamB = request.object.get('nameB'); 
var tytype = request.object.get('type'); 
var alice = Parse.User.current(); 
if (tytype === 8){ 

var bobQuery = new Parse.Query(Parse.User); 
bobQuery.equalTo("username", namnamB); 
bobQuery.first().then(function(bob) { 
    var alicesRelation = alice.relation("friendsList"); 
    var alicesPotRelation = alice.relation("potFriendsList"); 
    var bobsRelation = bob.relation("friendsList"); 
    var bobsPotRelation = bob.relation("potFriendsList"); 
    alicesPotRelation.remove(bob); 
    alicesRelation.add(bob); 
    bobsPotRelation.remove(alice); 
    bobsRelation.add(alice);   

    return Parse.Object.saveAll([alice, bob]); 


}).then(function() { 

    downQuery.equalTo('nameA', namnamB); 
    downQuery.equalTo('nameB', namnamA); 
    downQuery.equalTo('type', 71); 
    return downQuery.find(); 

}).then(function(notizz) { 

    notizz.set('type', 1); 
    return Parse.Object.saveAll([notizz]); 

}).then(function() { 
    console.log("success " + arguments); 
    response.success(arguments);  

}), function(error) { 
    console.log("error " + error.message); 
    response.error(error); 

} 
} 
}); 

Любая помощь значительно улучшит продолжительность жизни моего компьютера. Спасибо.

+0

как другая нота, я считаю, что это вызовет бесконечный цикл, когда он получает 'вернуть Parse.Object.saveAll ([notizz]);'. Это сохранение уведомления, и мы уже находимся в методе afterSave уведомления. – papergodzilla

ответ

1

aftersave не имеет ответа, только запрос. https://parse.com/docs/js/guide

Следовательно, вам не нужно (и не должно) использовать ответ.

Кроме того, при вызове возвращения, он выходит из функции

Смежные вопросы