Если вы про 4xx/5xx ошибки, то с точки зрения fetch это не ошибки и они точно так же доступны в then.
В ваш catch вы попадёте только при сетевой ошибке (нет сети, не работает DNS, неправильные заголовки авторизации и т.п.) и в этом случае никакого тела ошибки нет по определению.
You gain 30.0 minutes every hour by increasing the speed from 40.0 to 60.0 Miles per hour (mph) .
Это значит, что на скорости 60 за час вы проедете 60 миль.
На скорости 40 вы проедете эти 60 миль за 1час 30 минут. Вот эти 30 минут и есть You gain 30 minutes.
Это парсер браузера исправил ваши ошибки. И «исправить» его нельзя и не нужно. Лучше объясните зачем вам это понадобилось и, я уверен, ваша реальная задача будет решена проще и правильнее.
var str = 'my name is {name} and I live in {place}';
var dict = {
name: 'lola',
place: 'city'
};
var result = str.replace(/{(\w+)}/g, function(s, tag) {
return dict[tag];
});
Не нужно такие вещи проверять браузером. Он, во-первых, кеширует (и, например если у вас 10 запросов к одному адресу, то первый уйдёт, а остальные будут ждать, вдруг первый отдаст заголовок разрешающий брать данные из кеша и не нужно будет делать ещё 9 запросов), во-вторых, держит сетевое соединение и поэтому следующие запросы (с большой вероятностью) попадут в тот же воркер.