Javascript 无法读取VUE中链接的AXIO事务中的公共数组项

Javascript 无法读取VUE中链接的AXIO事务中的公共数组项,javascript,arrays,vue.js,axios,Javascript,Arrays,Vue.js,Axios,我有一个从数组调用的链式AXIOS调用。我需要在第一个调用发出另一个API请求之前完成第二个调用,然后该过程才能正常工作。我唯一的问题是,我无法从第二条链的响应中引用任何内容。我需要将调用数组(arr)更新为公共数组this.excelData.results,甚至更新原始数组的深度副本。每次我听到一个错误,说: err = TypeError: Cannot read property 'ORCID' of undefined at eval (webpack- internal:

我有一个从数组调用的链式AXIOS调用。我需要在第一个调用发出另一个API请求之前完成第二个调用,然后该过程才能正常工作。我唯一的问题是,我无法从第二条链的响应中引用任何内容。我需要将调用数组(arr)更新为公共数组this.excelData.results,甚至更新原始数组的深度副本。每次我听到一个错误,说:

 err = TypeError: Cannot read property 'ORCID' of undefined at eval (webpack- 
    internal:///./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel- 
     loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue- 
    loader/lib/index.js?!./src/views/examples/ExcelWorksheet.vue?vue&type=script&lang=js&:410:49) at 
    NodeList.forEach (<anonymous>) at eval (webpack-internal:///./node_modules/cache- 
   loader/dist/cjs.js?!./node_modules/babel-loader/lib/index.js!./node_modules/cache- 
   loader/dist/cjs.js?!./node_modules/vue-loader/lib/index.js?!./src/views/examples/ExcelWorksheet.vue? 
   vue&type=script&lang=js&:381:28) at NodeList.forEach (<anonymous>) at eval (webpack- 
    internal:///./node_modules/cache-loader/dist/cjs.js?!./node_modules/babel- 
    loader/lib/index.js!./node_modules/cache-loader/dist/cjs.js?!./node_modules/vue- 
    loader/lib/index.js?!./src/views/examples/ExcelWorksheet.vue?vue&type=script&lang=js&:378:33)
},


您可以访问
arr
,否则错误可能是:
无法读取未定义的属性索引

您在第一个请求之后增加了
索引
arr
在增加的
索引
处有值
未定义
,因此错误表示
无法读取未定义
的属性'ORCID'


您可以在
之前尝试
console.log(arr[index])
进行上述验证。

您可以访问
arr
,否则错误可能是
无法读取未定义的属性索引。您在第一个请求之后增加了
索引
arr
在增加的
索引
处有值
未定义
,因此错误表示
无法读取未定义的属性“ORCID”。您可以在
之前尝试
console.log(arr[index])
让xyz=arr[index][“ORCID”]
验证上述内容。就是这样。我真的觉得自己很笨。我专注于错误的问题,Vue对我来说是新事物,当我不得不在一些领域做self=this时,我不确定是否是这样。谢谢你把它作为一个答案贴出来,我会给你正确答案的信用;),作为答复张贴。
    lookUpORCID(){
   this.pubmedArticles=[];
   this.makeRequestsFromArray(this.excelData.results);
       },
          makeRequestsFromArray(arr) {

   var self = this
   let index = 0;
  function request() {

  let authorName =  arr[index]["Last_Name"]

  let linkGetIdList = 'https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?';
  linkGetIdList += 'tool=biosketch&db=pubmed&retmode=json&retmax=200&';
  linkGetIdList += 'term=' + authorName +'[AU] ';

    return axios.get(linkGetIdList).then((res) => { 
         index++;
         let idlist = res.data.esearchresult.idlist
         const passID = idlist.join(',')
        if (idlist.length > 0) {  
          var getXmlLink = 'https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?';
          getXmlLink += 'db=pubmed&retmode=xml&id=${passID}';         
          return axios.get(getXmlLink).then((response) => {
             // parse document
              const parser = new DOMParser()
              const xmlDoc = parser.parseFromString(response.data, 'text/xml') // Get ALL XML content
              // Do Stuff

              **This is the spot that I need to change value in array**
              let xyz = arr[index]["ORCID"]



              return request(); 
          }) 
          }

        if (index >= arr.length) {
            return 'done'
        }
    });

}
return request();