(прошу прощения за мой английский)
Сейчас я узнаю об обещаниях javascript.
Ниже приведен пример простого кода javascript для node.js ( my node.js версия v10.0.0 ), которая асинхронно читает и анализирует файл JSON с использованием цепочки обещаний.
const fs = require("fs");
function readFileAsync(filename) {
return new Promise((resolve, reject) => {
fs.readFile(filename, 'utf8', (error, result) => {
if (error)
reject(error);
else
resolve(result);
});
});
}
readFileAsync('test.json')
.then(res => JSON.parse(res))
.then(res => { console.log('JSON=', res); })
.catch(err => { console.log(err.message); });
Я обнаружил, что этот пример кода генерирует различные форматы сообщений об ошибках.
Например, если он не может найти «test.json», сообщение об ошибке будет ...
ENOENT: no such file or directory, open '/home/node/test.json'
Если он не может проанализировать 'test.json', появляется сообщение об ошибке ...
Unexpected token / in JSON at position 31
Я хочу изменить пример кода для генерации того же формата сообщения об ошибке, всегда содержащего имя файла JSON.
Для этого, во-первых, я должен знать, какая часть цепочки обещаний вызвала ошибку. Как я могу знать?