gpt4 book ai didi

javascript - Parse.com/CloudCode promise 不太清楚

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:57:57 24 4
gpt4 key购买 nike

我被这个问题困住了,找不到答案。我在 Cloud Code 中编写了以下函数。

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 Ran job updateSoccerData2 with:
Input: {} Result: TypeError: Cannot read property 'Team1' of undefined at e. (_other/nunutest.js:28:48) at e.i (Parse.js:14:27703) at e.a.value (Parse.js:14:27063) at e.i (Parse.js:14:27830) at e.a.value (Parse.js:14:27063) at Object. (:846:17) I2016-01-28T16:28:55.561Z]Entering getSoccerData I2016-01-28T16:28:56.920Z]Just a Log: SV Darmstadt 98

所以看起来异步函数在分配时还没有准备好。有人可以帮忙吗?谢谢!

最佳答案

你的功能看起来没问题,但工作需要更改为:

Parse.Cloud.job("updateSoccerData2", function (request, response) {
getSoccerData().then(function(matchArray) {
console.log("TestLog: " + matchArray[1].Team1.TeamName);
response.success("Success!");
}, function(error) {
response.error(error.message);
});
});

因为该函数返回一个您等待的 promise ,而该 promise 的最终结果就是您的数据数组。

关于javascript - Parse.com/CloudCode promise 不太清楚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35067117/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com