Я пытаюсь понять обещания, но Im ударил блокпост, я пытаюсь запросить базу данных Parse для последнего объекта текущей даты, чтобы плохо знать, когда он был запущен последним. Затем передайте эту дату следующей функции, которая может проверить мою базу данных фильмов на что-либо после последнего вызова. (Я делаю это, чтобы отправлять push-уведомления для новых полей, введенных вручную в класс Parse), а затем отправить push. Но я не понимаю. Затем и обещания, я новичок в JavaScript, поэтому любая помощь будет оценена!JavaScript Promises
Вот мой код, который у меня есть сейчас.
Parse.Cloud.job("TestSendNewMoviePush", function(request, response) {
var query = new Parse.Query("MovieStatus");
var lastRunDateQuery = new Parse.Query("LastRun");
var lastRunDate;
var newDate;
var newCount = 0;
var installQuery = new Parse.Query(Parse.Installation);
query.greaterThan("updatedAt", lastRunDate);
query.equalTo("CurrentStatus", "Ready");
query.equalTo("imageStatusName", "Green");
installQuery.equalTo("role", "downloader");
lastRunDateQuery.get("d3WeNEwzIu", {
success: function(lastDateRanObj) {
console.log("Got the object " + lastDateRanObj);
var date = new lastDateRanObj.updatedAt;
lastRunDate = lastDateRanObj.updatedAt;
console.log(lastRunDate);
return lastRunDate;
},
error: function(lastDateRanObj, error) {
console.log("Failed to get object");
}
}).then(
query.count({
success: function(count) {
newCount = count;
return newCount
},
error: function(e) {
}
})).then(
Parse.Push.send({
where: installQuery,
data: {
"alert": newCount + " new movie(s) available!",
"badge": "Increment"
}
}, {
success: function() {
response.success("Success");
},
error: function(e) {
response.error("Error:" + e.code);
}
}));
});
затем принимает функцию обратного вызова в качестве параметра. Вы не передаете функцию своим последующим вызовам. – bhspencer
Возможно, вы захотите ознакомиться с цепочкой обещаний. Http://stackoverflow.com/questions/14220321/how-to-return-the-response-from-an-asynchronous-call/14220323#14220323 .. node.js но хорошо https://github.com/kriskowal/q и –
Начните с использования методов объекта 'success' и' error'. Тогда не забывайте «возвращать» свои обещания повсюду. И, как сказал bhspencer, вам нужно передать функции обратного вызова на 'then'. Он получит «newcount» в качестве аргумента. – Bergi