Angular Js / Javascript выполняет функцию до тех пор, пока не будет использовано все содержимое массива - PullRequest
0 голосов
/ 13 февраля 2019

Вопрос в том, как назначить данные ["random_code"] каждому случайному коду из массива, но не всем сразу.Если data ["random_code"] не имеет значения из массива, он выполнит Data.service, и если ответ равен 200, он переходит к следующему значению и снова выполняет обслуживание данных и будет ждать ответа 200 для следующего, пока все значение из массива не будетиспользуется, а затем он остановится.

  let result = me.records.questionaires.map(a => a.random_code);
    var myStringArray = result
    console.log("List of Code", myStringArray)

ответ

List of Code (10) ["50-1118561158114", "50-111111118129911", "50-7111851035611", "50-95354410524", "50-2143566173", "50-49361157339", "50-2961010112644", "50-612511266113", "50-8381637318", "50-6819378387"]

интерактивная часть

for (var i = 0; i < arrayLength; i++) {
            data["users"] = me.records.shared_people
            data["random_code"] = myStringArray[i]   
            Data.service(me, data).then(function (response) {
                if (response.status == "200") {

                }
            })


        }

1 Ответ

0 голосов
/ 13 февраля 2019

Я предпочитаю использовать для этого рекурсию.Создан один метод doProcess с myArray и index в качестве параметров.Вызовите doProcess(myArray, 0) с индексом 0. В этой функции вызывайте сервис

data["users"] = me.records.shared_people
var myArray = me.records.questionaires

    doProcess(myArray, 0);
    function doProcess(myArray, index) {
      if(myArray.length === index){
           return;
      }
       $scope.random-code = myArray[index].random_code;
       DataService.share(me, data).then(function (response) {
         if (response.status == "200") {
            doProcess(myArray, ++index);
            // process
         }
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...