Я застрял с этой проблемой и не мог найти ответ. Я написал следующую функцию в облачном коде.
function getSoccerData()
{
console.log("Entering getSoccerData");
var promise = Parse.Cloud.httpRequest({
url: 'http://www.openligadb.de/api/getmatchdata/bl1/2015/'
}).then(function(httpResponse) {
console.log("Just a Log: " + JSON.parse(httpResponse.buffer)[1].Team1.TeamName);
return JSON.parse(httpResponse.buffer);
});
return promise;
}
Я надеюсь, что правильно использовал Promises.
Теперь я назначаю функцию переменной в моем фоновом задании следующим образом.
Parse.Cloud.job("updateSoccerData2", function (request, response) {
var matchArray
matchArray = getSoccerData().then(function() {
console.log("TestLog: " + matchArray[1].Team1.TeamName);
response.success("Success!");
}, function(error) {
response.error(error.message);
});
});
Когда я пытаюсь запустить это, я получаю следующий вывод журнала
E2016-01-28T16:28:55.501Z]v412 Выполнено задание updateSoccerData2 с:
Ввод: {} Результат: TypeError: Не удается прочитать свойство Team1 неопределенного на e. (_other/nunutest.js:28:48) в e.i (Parse.js:14:27703) в e.a.value (Parse.js:14:27063) в e.i (Parse.js:14:27830) в e.a.value (Parse .js:14:27063) в Объект. (:846:17) I2016-01-28T16:28:55.561Z]Вход в getSoccerData I2016-01-28T16:28:56.920Z]Просто лог: SV Darmstadt 98
Таким образом, кажется, что асинхронная функция не готова к выполнению назначения. Кто-нибудь может помочь? Благодарю вас!