WordId
は配列です。配列を繰り返し処理し、サービスコールを呼び出して応答をresponses
配列に格納する必要があります。配列を繰り返し、サービス呼び出しを行い、配列内にレスポンスを格納します。
var wordId = [];
var responses = [];
for (var i = 0; i < result.words.length; i++) {
if (result.words[i].exampleSentences == undefined) {
wordId.push(result.words[i].identifier);
}
}
self.getWordExample(0, wordId, responses, function(responses) {
console.log(responses);
});
console.log("outside",responses);
マイサービスファイル
getWordExample: function(i, wordId, responses,callback) {
var self = this;
services.WordExampleService.getWordExamples(wordId[i], function(err, response) {
responses.push(response);
i++;
if (wordId[i]) {
console.log("wordid",wordId[i]);
self.getWordExample(i, wordId, responses);
}
else if(callback){
console.log(responses);
callback(responses);
}
});
}
これは、サービスが最初に実行されているとwordidは、次の を実行しているconsole.Whyで最初にして関数を実行する方法はありますresponses
[非同期呼び出しから応答を返す方法]の複製がありますか?(https://stackoverflow.com/questions/14220321/how-to-return-the-response-from-an-asynchronous-call) – str