Я использую библиотеку запроса узел, который можно найти по следующей ссылкеУзел Запрос Библиотека - Promise Рефакторинг
https://github.com/request/request
У меня есть ряд функций, которые выглядят следующим образом
function doRequest() {
return new Promise(function(resolve,reject) {
request('some-url', function(error,response,body) {
if (!error && response.statusCode === 200) {
resolve(body)
}
});
});
}
Я тогда вызываю эти функции
doRequest()
.then(function(response){
console.log(response);
})
Мой вопрос: есть ли способ написать мою функцию doRequest без необходимости создавать новое обещание? Я чувствую, что это неудобно выглядит и может быть анти-шаблон? Вроде как в AngularJS вы часто видите людей, использующих
$q.defer()
при выполнении HTTP вызовов, когда вызов HTTP уже возвращает обещание.
Любые советы были бы замечательными.
Нет, это правильный способ сделать это самостоятельно и не является анти-шаблоном, хотя меня не удивило бы, что кто-то уже предоставил возможность Promisify этой библиотеки. – Alnitak
Фактически в Git repo уже есть тестовые примеры для использования Promisify с 'request' – Alnitak
Спасибо за ответ. Для краткости оставим бит отклонения! – user2085143