Необработанное отклонение обещания, но нет очевидного асинхронного кода - PullRequest
0 голосов
/ 09 мая 2019

Этот поставил меня в тупик, потому что я не вижу, куда в него входит асинхронная часть. Я получаю ошибку Unhandled promise rejection: ReferenceError: Can't find variable: copyOfWatchList], но кроме кода, находящегося внутри асинхронной функции, этот конкретный фрагмент кода не является асинхронным, я бы подумал.

Все, что он делает, это делает копию состояния массива obj this.state.symbols и затем добавляет новую пару ключ / значение в конкретную точку в obj, что работает. Различные строки console.log отображают правильные данные.

Затем я пытаюсь скопировать новый объект обратно в массив в определенной точке i, где написано copyOfWatchList[i] = theNewWatchListData, но эта строка выдает вышеуказанную ошибку.

Почему? Как это исправить?

 onPressAlertListItem = async (item) => {
   .....
   A WHOLE BUNCH OF ASYNC CODE THAT IS SEPERATE FROM BELOW AND WORKS ON ITS OWN
  ........

          var copyofWatchList = [...this.state.symbols];
          [...OTHER CODE WHICH DETERMINES THE VALUE OF newStuff...]
          for (var i = 0; i < copyofWatchList.length; i++) {
            theNewWatchListData = {
              ...copyofWatchList[i],
              newKey: newStuff
            };
            //console.log(theNewWatchListData) //this line works and has the added newKey:newStuff key value pair added to the object
            //save the array obj back into the watch list
            copyOfWatchList[i] = theNewWatchListData; //this line throws an error Unhandled promise rejection: ReferenceError: Can't find variable: copyOfWatchList]
            //console.log(copyofWatchList[i]) //this line works if the above line is commented out
          }
}
...