Parse afterFind, добавленный объект к ответу является указателем в клиенте - PullRequest
0 голосов
/ 27 мая 2018

Я работаю с облачной функцией afterFind с Parse, которая просто выполняет дополнительный запрос и устанавливает дополнительный объект в ответе.Я ожидаю, что этот же объект будет полностью извлечен в клиенте, но на самом деле это указатель или что-то в этом роде, потому что мне нужно вызвать fetchIfNeeded для него перед доступом к его данным.

Parse.Cloud.afterFind("PublicationImage", function(request, response) {

    ...

    votesQuery.equalTo("author", user)
    votesQuery.containedIn("target", publicationImagesIds);
    votesQuery.find()
      .then(function(votes) {
        votes.forEach(function(vote) {
          voteTarget = vote.get("target");
          for (var i = 0; i < publicationImages.length; i++) {
            if (publicationImages[i].id == voteTarget.id) {
              publicationImages[i].set("userVote", vote); <-- Here I add an obj
            }
          }
        });
        response.success(publicationImages);
      })

    ...

});

1 Ответ

0 голосов
/ 27 мая 2018

Я только что обнаружил, что по какой-то причине есть проблема, которая заставляет вас превращать ваш объект в Json или кодировать его перед возвратом клиенту, в противном случае он будет обработан и получен как указатель.

Обходной путь будет:

publicationImages[i].set("userVote", Parse._encode(vote));

Подробнее Здесь

...