解析 Promise return 一个值

Parse Promise return a value

我有一个运行查询(返回承诺)然后操作返回数据的函数。如何让调用函数访问 操纵的 数据?

调用是这样的:

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

功能如下。 query.find() returns Parse 中的 Promise。

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) {  
        }
    });
}

如果 query.find return 是一个承诺,那么您不想使用 successerror 处理程序;相反,使用 then 来操纵值:

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

这将 return 一个新的 promise,它将通过您操纵的结果而不是原始结果来解决。这是承诺链

如果 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;
    });
}

相反。