1
私はJQueryの約束と遅延オブジェクトの周りに私の頭をラップするのに苦労していますので、私に同行してください。また、私のアプリケーションでReact、Typescript、およびES6を使用しているとも言えます。Web APIへの同期JQueryコール
のは、私はオブジェクトの配列を持っているとしましょう:私は何をしようとしている
[{ Object }, { Object}, { Object }]
は、アレイ内の各オブジェクトに対して、オブジェクトは異なるパラメータでAPIへの呼び出しを作る、です応答を取得し、残りのオブジェクトに対して同じAPIを別の呼び出しを行います。基本的には、これらの呼び出しをまとめてチェーン化し、一度に1つずつ作成してから、それらをアプリケーション状態に追加します。ここで
は、私がこれまで持っているものだが、それは動作していない、明らかに、です:private getData(options: any[]): void {
let promises: any[] = [];
options.map((option: any, key: number) => {
let deferred: JQueryDeferred<any> = $.Deferred();
deferred.done((response) => {
return this.getIndividual(option)
.done(response => {
console.log('done', response);
});
});
promises.push(deferred);
});
$.when.apply($, promises)
.then((response) => {
console.log('response', response);
}).fail((error) => {
console.log("Ajax failed");
})
.done(() => {
console.log('done');
});
}
private getIndividual(option: any) {
return apiCall(option.hashKey);
}
[この標準QA](https://stackoverflow.com/questions/14220321/how-do-i-return-the-response-from-an-asynchronous-call)を読んだか? –
'options.map'を使用し、結果を効果的に破棄することは無意味です –
[解決は次々と約束しますか?](http://stackoverflow.com/questions/24586110/resolve-promises-one-後で別の順序で) – Andreas