Size: a a a

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

2020 February 06

AT

Alexander Trifonov in Node.js — русскоговорящее сообщество
D
UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'parent' of undefined. Цикл я добавил после того, как вы подсказали мне, как решить первую проблему с await.
так это проблема в parseData, а не в цикле. Используйте catch
источник

D

D in Node.js — русскоговорящее сообщество
Alexander Trifonov
так это проблема в parseData, а не в цикле. Используйте catch
где имеено?
источник

AT

Alexander Trifonov in Node.js — русскоговорящее сообщество
D
где имеено?
вот тут @js_noobs_ru
источник

ZA

Zaur Abdulgalimov in Node.js — русскоговорящее сообщество
Zaur Abdulgalimov
есть такой код
run()
.then((res) => console.log('success', res))
.catch(error => {
      console.error('run err', error.stack)
});

async function run() {
 await new Promise(resolve => setTimeout(resolve, 10));
 await foo();
}

async function foo() {
 await new Promise(resolve => setTimeout(resolve, 10));
 throw new Error('Oops');
}


В случае ошибки, видим полный стектрейс, все хорошо. А вот если мне надо вернуть результаты выполнения, т.е. написать так:
run()
.then((res) => console.log('success', res))
.catch(error => {
 console.error('run err', error.stack)
});

async function run() {
 await new Promise(resolve => setTimeout(resolve, 10));
 return foo(); /// ЗДЕСЬ добавили return
}

async function foo() {
 await new Promise(resolve => setTimeout(resolve, 10));
 throw new Error('Oops');
}

Стек ломается,  как то можно это исправить?
простите, можно я апну свой вопрос :)
источник

TG

Timofey Goncharov in Node.js — русскоговорящее сообщество
устанавливаю локальный модуль через указания пути. и он ставиться вместе с node_modules, но node_modules в .npmignore почему так?
источник

AE

Alexey Ermakov in Node.js — русскоговорящее сообщество
Zaur Abdulgalimov
простите, можно я апну свой вопрос :)
--async-stack-traces

сильно не вникал в код, но при return-е происходит выход из функции - pop из стека - в какой-то момент стек уже "не тот, что прежде" :)
источник

ZA

Zaur Abdulgalimov in Node.js — русскоговорящее сообщество
Alexey Ermakov
--async-stack-traces

сильно не вникал в код, но при return-е происходит выход из функции - pop из стека - в какой-то момент стек уже "не тот, что прежде" :)
не помогает, вопрос почему без return но с await стек сохраняется?
источник

ZA

Zaur Abdulgalimov in Node.js — русскоговорящее сообщество
как сохранить стек, если мне надо вернуть по цепочке какое то значение
источник

PS

Pavel Shakhov (pongo) in Node.js — русскоговорящее сообщество
Zaur Abdulgalimov
есть такой код
run()
.then((res) => console.log('success', res))
.catch(error => {
      console.error('run err', error.stack)
});

async function run() {
 await new Promise(resolve => setTimeout(resolve, 10));
 await foo();
}

async function foo() {
 await new Promise(resolve => setTimeout(resolve, 10));
 throw new Error('Oops');
}


В случае ошибки, видим полный стектрейс, все хорошо. А вот если мне надо вернуть результаты выполнения, т.е. написать так:
run()
.then((res) => console.log('success', res))
.catch(error => {
 console.error('run err', error.stack)
});

async function run() {
 await new Promise(resolve => setTimeout(resolve, 10));
 return foo(); /// ЗДЕСЬ добавили return
}

async function foo() {
 await new Promise(resolve => setTimeout(resolve, 10));
 throw new Error('Oops');
}

Стек ломается,  как то можно это исправить?
return await foo()
???
источник

ZA

Zaur Abdulgalimov in Node.js — русскоговорящее сообщество
Pavel Shakhov (pongo)
return await foo()
???
так работает)) почему я сразу этого не понял 🤦‍♂️
но все равно не понятно, почему просто return foo() не работает... магия :(
источник

KG

Kool Guy in Node.js — русскоговорящее сообщество
Zaur Abdulgalimov
так работает)) почему я сразу этого не понял 🤦‍♂️
но все равно не понятно, почему просто return foo() не работает... магия :(
потому что возвращает промис
источник

KG

Kool Guy in Node.js — русскоговорящее сообщество
его нужно дождаться
источник

KG

Kool Guy in Node.js — русскоговорящее сообщество
так промис чейнинг работает
источник

KG

Kool Guy in Node.js — русскоговорящее сообщество
Promise.resolve(1)
.then((val) => {
return Promise.resolve(val*2)
})
.then((val => {
console.log(val) // 2
})
источник

AE

Alexey Ermakov in Node.js — русскоговорящее сообщество
Zaur Abdulgalimov
не помогает, вопрос почему без return но с await стек сохраняется?
почему не сохранятся я описал
источник

Н

Никита in Node.js — русскоговорящее сообщество
const cheerio = require('cheerio')
const needle = require('needle')
let url = 'https://hard.rozetka.com.ua/greenwave_r0015328/p117874051'
needle.get(url, (err, res) => {
 console.log(res.body)
}
источник

Н

Никита in Node.js — русскоговорящее сообщество
почему этот код выводит buffer, а не html?
источник

PS

Pavel Shakhov (pongo) in Node.js — русскоговорящее сообщество
res.body.toString()
источник

Н

Никита in Node.js — русскоговорящее сообщество
Pavel Shakhov (pongo)
res.body.toString()
выводит пустую строку
источник

ZA

Zaur Abdulgalimov in Node.js — русскоговорящее сообщество
Alexey Ermakov
--async-stack-traces

сильно не вникал в код, но при return-е происходит выход из функции - pop из стека - в какой-то момент стек уже "не тот, что прежде" :)
перечитал сейчас еще раз, вроде понял. Если делаем return foo - выходим из функции run и "подвисаем" где то в ожидании прописа, и в этот момент стек обрывается
источник