Узел JS / Анализировать Облако Код Несколько внутренних запросов

голоса
0

Моя схема является: Таблица 1 Planet [имя: String]

Таблица 2 Город [имя: String, планета: Указатель на запись Planet]

Я хочу, чтобы запросить table1 для всех записей, а затем перебирать эти записи и таблица2 запроса получать все записи, которые принадлежат к этой планете.

Я хочу сохранить карту со всеми городами для каждой планеты и возвратить весь набор.

Я не уверен, что я делаю неправильно, возможно, не используя обещания правильно?

Вот то, что я пытался, но я возвращаю пустой набор каждый раз.

Parse.Cloud.define('getPlanetsAndCities', function( req, res)
{
// Holds planet -> [City]
var data = {};

// Planets
let planetQuery = new Parse.Query(MODEL.Planet.className());
planetQuery.addAscending(name);

// Cities
let cityQuery = new Parse.Query(MODEL.City.className());
cityQuery.addAscending(name);

// Get all planets
var planetPromises = planetQuery.find()
.then(planets =>
{
    // For each planet
    planetPromises = planets.map(planet =>
    {

        // Planet name
        let planetName = planet.get('name');

        console.log(==============================);
        console.log(==== Planet:  + planetName +  ====);

        // Get all cities for that planet
        cityQuery.equalTo('planet', planet);
        var cityPromises = cityQuery.find()
        .then(cities =>
        {
            // For each city
            cityPromises = cities.map(city =>
            {
                // City name
                let cityName = city.get('name');

                console.log(cityName);

                // Initialize list for this planet name
                data[planetName] = data[planetName] || [];

                // Add city to list for planet
                data[planetName].push(cityName);
            });
        });
    }); // End of for each planet

    // After all queries finished
    Promise.all(planetPromises)
    .then(planets =>
    {
        res.success(data);
    });
})
.catch(function (err)
{
    res.log.error(Error fetching planet/city data);
});
});
Задан 07/05/2018 в 00:22
источник пользователем
На других языках...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more