Size: a a a

Node.js — русскоговорящее сообщество

2020 February 22

I

Ivan in Node.js — русскоговорящее сообщество
exports.json = (url) => {
 return new Promise((resolve, reject) => {
   https.get(url, (res) => {
     let data = '';
     res.on('data', (chunk) => { data += chunk; });
     res.on('end', () => {
         resolve(JSON.parse(data,"utf8"));
         console.log("ERRRR")
         reject(e.message);
     });
   })
 });
}
так?
источник

T

The Fallen Phoenix in Node.js — русскоговорящее сообщество
ᐺ ! ᖇ ᖶ ᒪ
а зачем try catch тогда? внутри промиса
Ну это уже мелочи по сравнению с тем что каналы передачи ошибок друг о друге ничего не знают
источник

ᐺ ! ᖇ ᖶ ᒪ in Node.js — русскоговорящее сообщество
Ivan
exports.json = (url) => {
 return new Promise((resolve, reject) => {
   https.get(url, (res) => {
     let data = '';
     res.on('data', (chunk) => { data += chunk; });
     res.on('end', () => {
         resolve(JSON.parse(data,"utf8"));
         console.log("ERRRR")
         reject(e.message);
     });
   })
 });
}
так?
у тебя нет объекта с ошибкой поэтому не так
источник

ᐺ ! ᖇ ᖶ ᒪ in Node.js — русскоговорящее сообщество
не знаю хорошо ли это или плохо но существует event-to-promise или типа того модуль
источник

¿

¿hope in Node.js — русскоговорящее сообщество
Ivan
exports.json = (url) => {
 return new Promise((resolve, reject) => {
   https.get(url, (res) => {
     let data = '';
     res.on('data', (chunk) => { data += chunk; });
     res.on('end', () => {
         resolve(JSON.parse(data,"utf8"));
         console.log("ERRRR")
         reject(e.message);
     });
   })
 });
}
так?
А если там данные придут не в формате json?
источник

PS

Pavel Shakhov (pongo) in Node.js — русскоговорящее сообщество
Ivan
exports.json = (url) => {
 return new Promise((resolve, reject) => {
   https.get(url, (res) => {
     let data = '';
     res.on('data', (chunk) => { data += chunk; });
     res.on('end', () => {
       try {
         resolve(JSON.parse(data,"utf8"));
       } catch (e) {
         console.log("ERRRR")
         reject(e.message);
       }
     });
   })
 });
}
запустил твой. да ловится ошибка, все норм.

json('http://worldtimeapi.org/wrongurl').then(x => console.log(x)).catch(console.error);
источник

I

Ivan in Node.js — русскоговорящее сообщество
¿hope
А если там данные придут не в формате json?
тогда тоже плохо
источник

T

The Fallen Phoenix in Node.js — русскоговорящее сообщество
Ivan
exports.json = (url) => {
 return new Promise((resolve, reject) => {
   https.get(url, (res) => {
     let data = '';
     res.on('data', (chunk) => { data += chunk; });
     res.on('end', () => {
         resolve(JSON.parse(data,"utf8"));
         console.log("ERRRR")
         reject(e.message);
     });
   })
 });
}
так?
Явный конструктор промисов это антипаттерн
источник

PS

Pavel Shakhov (pongo) in Node.js — русскоговорящее сообщество
The Fallen Phoenix
Явный конструктор промисов это антипаттерн
пруф
источник

T

The Fallen Phoenix in Node.js — русскоговорящее сообщество
Не без причины. Используй промисифай на функцию с коллбеком
источник

T

The Fallen Phoenix in Node.js — русскоговорящее сообщество
В прикладной разработке*
источник

¿

¿hope in Node.js — русскоговорящее сообщество
The Fallen Phoenix
Не без причины. Используй промисифай на функцию с коллбеком
Когда использовать библиотеку стало лучше, чем нативное решение?
источник

PS

Pavel Shakhov (pongo) in Node.js — русскоговорящее сообщество
The Fallen Phoenix
В прикладной разработке*
все еще не вижу причины
источник

I

Ivan in Node.js — русскоговорящее сообщество
exports.json = (url) => {
 return new Promise((resolve, reject) => {
   https.get(url, (res) => {
     let data = '';
     res.on('data', (chunk) => { data += chunk; });
     res.on('end', () => {
       resolve(JSON.parse(data,"utf8"));
     });
   }).on('error', (e) => {
     reject(e.message);
   })
 });
}
вот теперь ловится
источник

T

The Fallen Phoenix in Node.js — русскоговорящее сообщество
Во первых, там же в видео выше. Во вторых, разраб Bluebird про это писал.
источник

PS

Pavel Shakhov (pongo) in Node.js — русскоговорящее сообщество
ты тот код видел? там данные получаются чанками, как ты его промисфаешь?
источник

PS

Pavel Shakhov (pongo) in Node.js — русскоговорящее сообщество
Ivan
exports.json = (url) => {
 return new Promise((resolve, reject) => {
   https.get(url, (res) => {
     let data = '';
     res.on('data', (chunk) => { data += chunk; });
     res.on('end', () => {
       resolve(JSON.parse(data,"utf8"));
     });
   }).on('error', (e) => {
     reject(e.message);
   })
 });
}
вот теперь ловится
а где ловится ошибка парсинга json?
источник

T

The Fallen Phoenix in Node.js — русскоговорящее сообщество
Pavel Shakhov (pongo)
ты тот код видел? там данные получаются чанками, как ты его промисфаешь?
Так промис тут создаётся также один
источник

I

Ivan in Node.js — русскоговорящее сообщество
Pavel Shakhov (pongo)
а где ловится ошибка парсинга json?
а как это сделать?
источник

PS

Pavel Shakhov (pongo) in Node.js — русскоговорящее сообщество
Ivan
а как это сделать?
как раньше — через try catch
источник