gpt4 book ai didi

javascript - ParseApp 从 httpRequest 保存数据

转载 作者:行者123 更新时间:2023-11-28 01:17:44 27 4
gpt4 key购买 nike

我正在编写一个简单的应用程序,我需要从 http get api 调用获取数据并将其存储在 Parse 中,由于某种原因,并非所有数据都被存储。另外,http 调用在保存所有数据之前返回,这里是代码。

怎样才能让它在保存完所有数据后才返回?

Parse.Cloud.httpRequest({
url: 'http://api.rottentomatoes.com/api/public/v1.0/lists/movies/upcoming.json?apikey=apikey',
success: function(httpResponse) {


var jsonobj = JSON.parse(httpResponse.text);

var total = jsonobj.movies.length;

for ( var idx in jsonobj.movies) {
var movie = new Movie();
movie.save(new Movie(jsonobj.movies[idx])).then(
function(object){
console.log(object)
},
function(error){
console.log(error);
}
)

}
response.send("All saved");

},
error: function(httpResponse) {
console.error('Request failed with response code ' + httpResponse.status);
response.send("Failed");
}
})

最佳答案

您需要通过聚合函数聚合您使用的所有 promise ,在解析 promise 的情况下,它是 .when :

Parse.Cloud.httpRequest({
url: 'http://api.rottentomatoes.com/api/public/v1.0/lists/movies/upcoming.json?apikey=apikey',
success: function(httpResponse) {


var jsonobj = JSON.parse(httpResponse.text);

var total = jsonobj.movies.length;
var results = [];
// do NOT iterate arrays with `for... in loops`
for(var i = 0; i < jsonobj.movies.length; i++){
var movie = new Movie();
results.push(movie.save(new Movie(jsonobj.movies[i]))); // add to aggregate
}
// .when waits for all promises
Parse.Promise.when(promises).then(function(data){
response.send("All saved");
});


},
error: function(httpResponse) {
console.error('Request failed with response code ' + httpResponse.status);
response.send("Failed");
}
})

虽然,对 httpRequest 使用 Promise 可能会更好,但这应该可行。

关于javascript - ParseApp 从 httpRequest 保存数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23646985/

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