return не останавливает выполнение кода внутри запроса - PullRequest
0 голосов
/ 18 октября 2019

Я использую запрос пакет, и он работает, но после выполнения запроса и отправки кода статуса пользователю он продолжает выполнять код, даже если я использую return. Вот мой код

request(longurl, {method: 'HEAD'}, function(error,response,body){
     if(error){
         return res.status(409).send({
             message: 'URL is not valid'
         })
     }
})
if(other_condition){
   return res.status(409).send({})
}

, и он дает мне

(узел: 3040) UnhandledPromiseRejectionWarning: Ошибка: Невозможно установить заголовки после их отправки.

1 Ответ

2 голосов
/ 18 октября 2019

Проблема в том, что вы вызываете return в функции обратного вызова. Это заставляет эту функцию возвращаться, но внешняя функция продолжит выполнение. Возможно, ваша проверка other_condition должна быть внутри обратного вызова, и тогда вам не понадобятся операторы return.

request(longurl, {method: 'HEAD'}, function(error,response,body){
     if(error){
         res.status(409).send({
             message: 'URL is not valid'
         })
     } else if(other_condition){
         res.status(409).send({})
     }
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...