-1

何が問題なのかわからない。空の配列を返し続けます。つまり、movieIds は常に空です。

function getMoviesInCinema(theCinema){
    var cinema = theCinema;
    var query = new Parse.Query("showing");
    var movieIds = [];

    query.equalTo("cinema", {
        __type: "Pointer",
        className: "Cinema",
        objectId: cinema
    });
    query.find().then(function(results) {
        if(results.length > 0){
            for (var i = 0; i < results.length; i++) {
                movieIds.push(results[i].get("movie"));
            }

        }
        else{
            console.log("Could be an error");
        }
    });
    return movieIds;

}
4

3 に答える 3

2

これは、関数から戻ったときにクエリがまだ終了していないためです。代わりに、関数がコールバックを受け取るようにする必要があります。

function getMoviesInCinema(theCinema, callback){
    var cinema = theCinema;
    var query = new Parse.Query("showing");

    query.equalTo("cinema", {
        __type: "Pointer",
        className: "Cinema",
        objectId: cinema
    });
    query.find().then(function(results) {
        if(results.length > 0){
            callback(results);
        }
        else{
            console.log("Could be an error");
        }
    });
}

次に、次のように呼び出します。

getMoviesInCinema(theCinema, function(movieIds) {

    console.log(movieIds);

});
于 2014-08-30T09:13:03.820 に答える
-3

使用する代わりに

movieIds.push(results[i].get("movie"));

使ってみて

movieIds.add(results[i].get("movie"));

それはあなたの問題を解決するかもしれません。

于 2014-08-30T09:12:05.070 に答える