首页 > 解决方案 > UnhandledPromiseRejectionWarning:TypeError:无法读取未定义的属性“数据”

问题描述

我将用户在我的网站上搜索的查询发送到谷歌驱动器以获取所搜索文件的 ID。我使用 id 发送获取请求,以便获取文本文件数据。我得到了所有的 id,但是在获取请求的前几个返回时我得到了一个错误。UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'data' of undefined 我在第一次返回时得到这个错误,然后我得到其余的数据。错误不一致。有时它是一个响应,其他可能是 5 个响应 // 使用 NPM 模块 'async' async.doWhilst(function (callback) { g_drive.files.list({ q: apiSearch, fields: 'nextPageToken, files(id, name) )', spaces: 'drive', pageToken: pageToken }, function (err, res) { if (err) { // 处理错误 console.error(err);

getText(g_auth,file.id, file.name,g_searchId);

  });
  pageToken = res.nextPageToken;
  callback();
}

});
}, function () {
return !!pageToken;
}, function (err) {
if (err) {
// Handle error
console.error(err);

} 别的 {

// All pages fetched

}
})

这是我收到错误的功能。我在这里传递了之前搜索的 id。该错误仅发生在前几次返回时,然后我将所有数据取回其余部分

  function getText(auth,fileId, name, g_searchId) {

  const drive = google.drive({version: "v3",
  auth});


  drive.files.get({fileId: fileId, alt: "media"}, {responseType: "stream"},
   function(err, res){



 res.data.on("error", err => {
    console.log("Error", err);
  }).on("data", function(chunk) {

      l_chunk += chunk;


console.log("success");
 })
 .on("end", () => {



  textFileArr.push(l_chunk);// PUSH TO ARR TO USE IN FRONT END



}

标签: javascriptnode.jsfunctionasynchronousgoogle-drive-api

解决方案


推荐阅读