javascript - 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
}
解决方案
推荐阅读
- c++ - 在循环中使用 cin.get() 输入字符串
- android - OkHttp - 向正文添加属性
- java - 仅从 Java 中的 JsonNode 获取双精度类型
- elixir - 为什么我的测试中 create_order/2 不匹配?
- javascript - Phaser - 如何更改组的精灵图像?
- function - TypeError:signUp 不是函数 - React Native Redux Typo
- ios - tvO 上的侧键盘
- twilio - Twilio - Twilio 功能而不是 Webhook 的消息服务入站设置
- python - 使用win32com通过outlook和python下载附件
- vue.js - 如何在 vue 组件中使用另一个方法的变量?