Parse Promise вернуть значение - PullRequest
0 голосов
/ 27 апреля 2018

У меня есть функция, которая запускает запрос (возвращает обещание), а затем манипулирует возвращенными данными. Как получить от вызывающей функции доступ к манипулируемым данным?

Звонок такой:

getAgeGroupList().then(function (result) {
        // Would like to access manipulated data here.
    });

И функция как ниже. query.find() возвращает Обещание в Parse.

function getAgeGroupList(){
    var query = new Parse.Query("Fixtures_and_results");
    return query.find({
        success: function(results) {
             /* Manipulate results here, then return manipulated data */
             // How do I return the manipulated data? e.g return(newArray)
        },
        error: function(error) {  
        }
    });
}

1 Ответ

0 голосов
/ 27 апреля 2018

Если query.find возвращает обещание, вы не хотите использовать обработчики success и error; вместо этого используйте then, чтобы манипулировать значением:

function getAgeGroupList(){
    var query = new Parse.Query("Fixtures_and_results");
    return query.find().then(results => {
        // Manipulate results here
        return updatedResults;
    });
}

Это вернет новое обещание, которое будет соответствовать вашим манипулируемым результатам, а не оригиналу. Это обещание цепочки .

Если вызов query.find завершится неудачно, его обещание будет отклонено, и обещание, созданное then, пропустит это отклонение (без вызова обработчика then).


Я использовал функцию стрелки выше, но, глядя на ваш код, он не использует никаких функций ES2015 +, кроме обещаний. Так что вы можете захотеть:

function getAgeGroupList(){
    var query = new Parse.Query("Fixtures_and_results");
    return query.find().then(function(results) { // <=== Changed to traditional function
        // Manipulate results here
        return updatedResults;
    });
}

вместо.

...