javascript - 在解析 object.save();不返回任何东西,为什么?

标签 javascript parse-platform promise

这是我的代码,它循环遍历 forEach 并打印出“1”,但永远不会从 object.save() 返回,并且永远不会打印出 2、3 或其他任何内容。我尝试了很多其他方法,但似乎都不起作用。

注意:response.succes(或error)没有在任何地方被调用,代码肯定正在等待object.save()完成。

var promise = new Parse.Promise();

var query = new Parse.Query("SomeClass");
query.find().then(function(results) {
    var promises = [];

    results.forEach(function(object) {
        object.set("SomeColumnName", true);
        console.log('1');

        promises.push(object.save(null, {
            success: function(result) {
                alert('2');                   
                return ;
            },
            error: function(result, error) {
                alert('3');
                return ;
            }
        }));
    });

    Parse.Promise.when(promises).then(function() {
        console.log('inside resolve');
        promise.resolve();
    }, function() {
        console.log('inside reject');
        promise.reject();
    });
});

return promise;

最佳答案

您走在正确的轨道上,但您应该利用大多数 sdk 函数为您创建和返回 promise 的事实。有了这些,您可以大大简化代码:

// very handy utility library that provides _.each among many other things
// www.underscorejs.org
var _ = require('underscore');

// answer a promise to modify all instances of SomeClass
function changeSomeClass() {
    var query = new Parse.Query("SomeClass");
    // if there are more than 100 rows, set query.limit up to 1k
    return query.find().then(function(results) {  // find returns a promise
        _.each(results, function(result) {
            result.set("SomeColumnName", true);
        });
        return Parse.Object.saveAll(results);  // and saveAll returns a promise
    });
}

将其包装在云函数中并像这样调用成功/错误:

Parse.Cloud.define("changeSomeClass", function(request, response) {
    changeSomeClass().then(function(result) {
        response.success(result);
    }, function(error) {
        response.error(error);
    });
});

关于javascript - 在解析 object.save();不返回任何东西,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29501647/

相关文章:

javascript - Jquery DOM 事件在其后面的事件执行后调用

javascript - jQuery 不适用于只选择一个复选框

javascript - 如何在具有相同名称但文件不同的javascript链接的页面中获取selenium的xpath?

ios - 不保存所需的图像方向

javascript - Promise 在 selenium-webdriver 中返回未定义

javascript - 在 jsRender 中,如何访问要更新的元素?

javascript - 使用 Parse.com 进行 Bootstrap Typeahead

swift - 模态呈现的 View Controller 的透明背景

arrays - Typescript - 具有不同返回值的动态 promise 数组

javascript - 没有陷入 promise 错误,但从第一次调用中得到结果