javascript - JS读取文件onload返回未定义
问题描述
我想从一个目录中读取一个 TXT 文件,我有这个工作正常的代码
window.onload = () => {
fetch("file.txt")
.then(res => res.text())
.then(data => {
console.log(data);
});
};
但我想在这样的函数中执行 fetch 调用:
window.onload = () => {
const filePath = "file.txt";
const fileData = readDataFile(filePath);
console.log(fileData);
};
const readDataFile = path => {
fetch(path)
.then(res => res.text())
.then(data => {
return data;
});
};
但在这种情况下,它返回undefined
.
它的另一个问题是,如果发生错误,我无法捕捉到,我尝试添加catch
承诺和throw
错误,但它不起作用。这是我尝试过的:
window.onload = () => {
fetch("file.txt")
.then(res => res.text())
.then(data => {
console.log(data);
})
.catch(err => {
throw new Error("ERROR!");
});
};
谢谢 :)
这有效:
const readDataFile = async path => {
try {
const response = await fetch(path);
const data = await response.text();
return data;
} catch (err) {
console.log('Cannot read file.');
}
}
window.onload = async () => {
const filePath = 'data.txt';
const fileData = await readDataFile(filePath);
console.log(fileData);
}
但同样,catch 方法不起作用?我做错了吗?
解决方案
推荐阅读
- reactjs - 我想在下拉菜单上显示标题,当有人选择一个选项并提交时,我想提交年份值
- sql - BigQuery - 连接列的所有行,直到达到特定值
- python - Python 和 Selenium - 无法选中复选框
- haskell - 将相对路径转换为绝对路径
- c - 宏重定义适用于某些编译器,但不适用于其他编译器。这是什么决定的?
- wpf - 带有 ContextMenu wpf 的用户控件
- core-data - 如何判断谓词coreData对象是否为空
- algorithm - 如何存储柱的收盘以供将来参考
- python - 从 python 写入文件也会在最后一行添加额外的字符
- php - 购物车中按产品类别的个性化消息,以鼓励您继续购物