私は約束の仕組みを理解しようとしているが、結果が得られていない。私は多くの例を試してきましたが、何も動作しません。httpRequestsが応答を送信する前に終了するまで待つ - ParseServer
このコードは、私が要求するURLの一部である配列o文字列を受け取るParseクラウドコード関数です。したがって、3要素の配列を受け取った場合、コードはhttprequestを3にする必要がありますurlは3つの応答を集めてクライアントに送信します。これは私がやったことです:
Parse.Cloud.define('getInfo', function(request,response) {
var placas = request.params.placa;
x(placas, function(result){
response.success(result);
}, function(error){
response.error(error);
});
});
function x(placas,callback,error){
var url1 = 'http://XXXXX/';
var promises = [];
for(var i=0; i<placas.length ;i++){
var url2 = url1.concat(placas[i]);
promises.push(requestMulta(url2));
}
var data = Parse.Promise.as(promises);
callback(data);
}
function requestMulta(url){
var promise = new Parse.Promise();
Parse.Cloud.httpRequest({
url: url ,
headers: {
'Content-Type': 'application/json;charset=utf-8'
}
}).then(function(httpResponse) {
...
promise.resolve(data);
}, function(httpResponse) {
//Handle error
});
return promise;
}
私が得る応答は次のとおりです。
{
"_rejected" = 0;
"_rejectedCallbacks" = (
);
"_resolved" = 1;
"_resolvedCallbacks" = (
);
"_result" = (
(
"<null>", // 3 null's because I'm testing with an array o 3 elements
"<null>",
"<null>"
)
);
}
私も同じ結果を得るその方法を試してみました、私はあなたが必ずあなたの上記のコードを使用してい – Rafaalvfe
HTTP応答を取得する前に、機能requestMulta仕上げているようですか?約束事が解決されていない特定の位置でconsole.log()を使用して保証できますか? – MemLeak