Вы можете использовать только псевдонимы столбцов в предложениях GROUP BY, ORDER BY или HAVING.
Стандартный SQL не позволяет ссылаться на псевдоним столбца в предложении WHERE. Это ограничение наложено, потому что, когда выполняется код WHERE, значение столбца еще не может быть определено.
blockquote>Скопировано из Документация MySQL
Как указано в комментариях, использование HAVING вместо этого может выполнить эту работу. Обязательно прочитайте это WHERE vs HAVING .
Как видно из документов, блок catch
будет достигнут, только если запрос не завершился. Когда есть доступный код состояния (и все другие данные также принимаются) fetch
будет разрешаться, и поэтому будет достигнут блок then
.
Обещание, возвращенное из fetch ( ) не будет отклонять статус HTTP-сообщений, даже если ответ представляет собой HTTP 404 или 500. Вместо этого он будет нормально работать (при нормальном статусе установлен на false), и он будет отклонен только при сбое сети или если что-либо помешало запросу комплектующие. - Источник
blockquote>Итак, все, что вам нужно сделать, это записать
resp.status
вместоresp
.fetch(`http://${this.serverAddress}/reset`) .then((resp) => { Logger.debug(JSON.stringify(resp.status)); }) .catch((err) => { Logger.debug(JSON.stringify(err)); });
В блоке catch я принимаю сообщение об ошибке с сообщением «Failed to fetch». Информация о статусе отсутствует.
blockquote>Поэтому, если блок
catch
получает вызов, запрос еще не закончил. Это может быть вызвано тем, что вы не используете такие опции, какmethod
,headers
, ... Если необходимо, какое и какие значения зависят от используемого вами бэкэнда.
Вы можете попытаться обработать статус ошибки, выполнив ошибку при обработке ответа сразу после того, как выборка выполнена с помощью !ok
:
fetch('/some/url/')
.then(response => {
if (!response.ok) {
throw Error({ status: response.status });
}
response.json();
})
.then(response => {
// do something
})
.catch(error => {
switch(error.status) {
// ...
}
});
После запроса выборки проверьте, соответствует ли ответ. Если нет, введите новую ошибку с помощью специального сообщения. В проверке catch, есть ли это настраиваемое сообщение для заброшенной ошибки. Обращайтесь соответственно. Вы также можете создавать собственные ошибки и проверять их.