Да, это правда, если файл существует, но он пустой, xhr.responseURL в любом случае содержит строку (url / path).
у создать расширение Chrome, которое сможет читать локальные файлы и использовать написанный в них код. Мой простой код:
const readFile = (filePath) => {
return new Promise(function (resolve, reject) {
const xhr = new XMLHttpRequest()
xhr.onerror = (error) => {
reject(error)
}
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
resolve(xhr.response)
}
}
xhr.ontimeout = function () {
reject('timeout')
}
xhr.open('GET', filePath)
xhr.send()
})
}
async function () {
const code = await readFile(jsFilePath)
console.log(code)
}
Этот код успешно работает, когда мой filePath правильный. Но когда это не консоль Chrome выдает эту ошибку:
GET file:///home/maxim/Documents/test.jsa net::ERR_FILE_NOT_FOUND
Обычный блок try / catch не работает
async function () {
try {
const code = await readFile(jsFilePath)
console.log(code)
} catch (e) {
console.log(e)
}
}
Как я могу поймать этот тип ошибок?