Необработанный отказ (TypeError): невозможно прочитать свойство Symbol (Symbol.iterator) из неопределенного - PullRequest
0 голосов
/ 31 октября 2018

У меня есть следующий код, который выполняет HTTP-вызов и возвращает обещание

const res = simulations.getSimulationRunAssets({
  path: this.props.commonProps.apiPath,
  apiVersion: DEFAULT_API_VERSION,
  simulationRunId
});
console.log('**** res', res);

res
  .then(data => {
    console.log('2SimulationRun populateSimulationRun getsimulation run assets data', data);
    if (!data) {
      return Promise.reject(new Error('No data received from the API.'));
    }

Вывод консоли показывает, что возвращается сообщение:

**** res Promise {<pending>}
...
2SimulationRun populateSimulationRun getsimulation run assets data 
(3) [{…}, {…}, {…}]
0
:
{id: 1, name: "H..."}
...

но тогда я получаю в консоли следующее:

Unhandled Rejection (TypeError): Cannot read property 'Symbol(Symbol.iterator)' of undefined

прямо в следующей строке (res.then (data => {):

res
> 91 |   .then(data => {

getSimulationRunAssets:

const getSimulationRunAssets = ({ path, apiVersion, simulationRunId }) => {
  const urlPath = `${path}${apiVersion}/simulation-runs/${simulationRunId}/assets`;

  console.log('GET Simulation Run Assets API Call', `${urlPath}`);

  const promise = axios
    .get(urlPath)
    .then(res => {
      console.log('GET Simulation Run Assets Response', res);
      if (res.status !== 200) {
        const err = new Error('Error retrieving simulation run assets');
        err.response = res;
        throw err;
      }
      console.log('getSimulationRunAssets returning res.data', res.data);
      return res.data;
    })
    .catch(err => {
      console.error(err);
      if (err.response && err.response.data && err.response.data.message) {
        err = new verror.VError(err, err.response.data.message);
      }
      console.log('Rejecting');
      console.log('getSimulationRunAssets returning rejecting', err);
      return Promise.reject(err);
    });
  console.log('getSimulationRunAssets returning promise', promise);
  return promise;
};

1 Ответ

0 голосов
/ 31 октября 2018

Ошибка в Chrome не очень помогала. Когда я переключился на Firefox, я увидел, что ошибка исходит от getSimulationRunAssets (). Ошибка Firefox говорит, что arr не был определен.

[currentAsset] = data.name;

должно было быть:

currentAsset = data[0].name;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...