Вася
21.08.2017
10:29:53
Лол
Ilgiz
21.08.2017
10:30:48
Просто я вывел вывод с видео выше что не сам js асинхронен а движок слева на схеме, в случае web js это web api, в нашем это хромовский движок
Вася
21.08.2017
10:30:55
Парни, есть же оф дока
Google
Вася
21.08.2017
10:31:50
Там написано более чем понятным языком
https://nodejs.org/en/docs/guides/event-loop-timers-and-nexttick/
Про ивент луп
Konstantin
21.08.2017
10:32:43
Дима в бане
И раз уж ты зашёл. Я видел, что ты был в рабочей группе по промисам. Можешь сказать, выполняется ли код внутри .then асинхронно или нет? Как это реализовано внутри?
Vladimir
21.08.2017
10:33:06
ДА. выполняется асинхронно
Примерно так же, как nextTick
Vlad
21.08.2017
10:39:12
Т.е. “попадет” - не совсем то.
CB попадет в message_queue, откуда его поместит в stack-выполнения EventLoop.
Но сделает это лишь тогда, когда нечего будет выполнять в stack’е
классчисеский вопрос по этой теме - почему вот такой код:
comsole.log(“start”)
setTimeout(() => {log(‘setTimeout’)}, 0)
comsole.log(“end”)
Выведется все равно же start -> end -> setTimeout
Хотя указали 0.
Ilgiz
21.08.2017
10:42:11
я это знаю:D
Google
Vlad
21.08.2017
10:42:16
Потому что сперва выполняется весь код из index.js
Ilgiz
21.08.2017
10:42:17
я вообще не про это
Vlad
21.08.2017
10:42:21
Так?
А
Я не понял вопроса?
Ilgiz
21.08.2017
10:46:55
все примеры асинхронного кода делаеться сторонными методами вроде этого settimeout,promise,setinterval и т.д, И вопрос был выше что обычный колбек при вызове сперва попадает в call stack и выполняется и на этом все стэк пуст, то есть он работает синхронно.Получаеться мы пишем асинхронный код с помощю методов движка V8 или же web api тот же в видео. Сам движок js не асинхронен он просто по call стэку берет и выполняет
Vlad
21.08.2017
10:47:29
Ага, я понял тебя
Интересно
Ща
Ilgiz
21.08.2017
10:50:22
Я раньше думал как, callback это и есть асинхронность то есть при вызове колбека то он делается асинхронно, то есть мы вызвали функцию он где то там работает и при заверщение просто вызывает колбек который возвращяет нужные нам данные.
Сегодня посмотрел видео и обсуждение тут и понял что это не так
Vlad
21.08.2017
10:50:52
а если мы пишем свою функци, принимающую коллбэк и она нативная
ее же не надо отдавать в libuv
вот тут хз, надо проверить
Denis
21.08.2017
10:51:11
ну жс то однопоточный
вызов колбека асинхронен, но исполнение всего этого дерьма то в один поток
Vlad
21.08.2017
10:53:06
Да вопрос не в этом
Ilgiz
21.08.2017
10:53:30
Vlad
21.08.2017
10:54:35
так че
сделай так
Google
Vlad
21.08.2017
10:54:43
Start -> cb -> end
выведется так же?
Принти просто
Мне аж любопытно, че будет
Igor
21.08.2017
10:56:08
...
Denis
21.08.2017
10:57:07
понятия асинхронный код не существует так та)
Ilgiz
21.08.2017
10:57:27
асинхронно он будет работать нет?
Vlad
21.08.2017
10:58:03
Лол
Ну, как я и думал.
Denis
21.08.2017
10:58:21
синхронный асинхронный это апи ввода-вывода
асинхронно будет работать, тоже и касается и примера с консолькой
если синхронно, то у тебя бы стопорилось выполнение кода пока функция не дождется ответа
Vlad
21.08.2017
10:59:42
Очень сложно сказал.
Мы не о том ведем беседу.
Синхронно != блокирующе.
Ilgiz
21.08.2017
11:00:15
Denis
21.08.2017
11:00:29
сорьки, я последние сообщения читаю)
Vlad
21.08.2017
11:00:59
Google
Denis
21.08.2017
11:01:24
угу, это относится к апи работы языка
синхронно = блокирующее
асинхронно != блокирующее
Oleg
21.08.2017
11:22:41
let getTicker = async () => {
try {
let ticker = await fetch('https://api.coinmarketcap.com/v1/ticker/bitcoin')
ticker = await ticker.json()
return await ticker[0]
} catch (e) {
console.error('Error get Bitcoin ticker', e)
}
}
console.log(getTicker()) // Promise { <pending> }
Почему Promise { <pending> }?
fetch = node-fetch
Konstantin
21.08.2017
11:24:02
Потому что async функции возвращают промис
Ilgiz
21.08.2017
11:37:18
Ну, как я и думал.
Получается если хочеш асинхронный код с нативными колбеками надо их оборачивать в setTimeout() с таймеров на 0
Vlad
21.08.2017
11:37:51
Da, inache budet tebe bo-bo
nextTick() ewe mojno
vrode bi videl takoe
Ramziddin
21.08.2017
11:39:16
Ilgiz
21.08.2017
11:39:29
не синхронный
асинхронный
если в call стэке лежит 100 функции он будет ждать эти функции потом только сделает эту
Ramziddin
21.08.2017
11:43:14
Значит код в setTimeout еще даже не будет выполнен пока call stack не освобожден
Ilgiz
21.08.2017
11:44:10
не успев event loop пушнуть функцию в call stack
Ramziddin
21.08.2017
11:45:37
Получается смысла в принципе нету оборачивать его в setTimeout если он не будет даже еще выполнен?
Ilgiz
21.08.2017
11:50:53
Alexander
21.08.2017
12:47:39
парни, подскажите, пожалуйста
нужно открыть .xls файл и взять данные со 2 колонки, перевести каждую ячейку в массив
как это можно сделать?
какие адекватные либы есть для .xls?
Google
Konstantin
21.08.2017
12:57:31
Valeriy
21.08.2017
13:06:01
всем привет!
такая проблема.
есть задача - спарсить данные с сайта, но там необходимо авторизация.
кто-нибудь может помочь, как через nodejs можно авторизоваться на сайте?
Victor
21.08.2017
13:10:29
Зависит от сайта. Если сайт использует SCRF токен, нужно будет еще и куки считать... а дальше отправляем пост запрос
Andrey ?
21.08.2017
13:16:01
Смотря как токен хранится
И есть ли он вообще
Если нет токена - шлешь post-запрос, сохраняешь куки
Если есть - сначала получаешь токен, затем шлешь пост-запрос
lexxx
21.08.2017
13:17:18
Парни дайте совет, в какую компанию идти большую или маленькую
Victor
21.08.2017
13:17:43
среднюю)
lexxx
21.08.2017
13:18:12
Ну маленькая это федеральная компания там просто прогеров пока мало
Но там больше свободы
Victor
21.08.2017
13:24:10
У каждого разние преоритеты.
У меня денежное вознаграждение , колелктив у которого можно научиться... , проекты (интиресние технологии ) и тд тп..
Остап
21.08.2017
13:25:30
XDXF - как считать этот xml-подобный формат для словарных записей на js?
Victor
21.08.2017
13:26:13
@senkevich_lex у больших могут быть плюшки вроде спортзала, и тд тп
но у больших можно дольше топтаться на одном месте (финансовом плане)
lexxx
21.08.2017
13:26:51
И в большой программистов много а это влияет наверное
Или наоборот??
Victor
21.08.2017
13:28:09
Влияет на то как общаетесь в команде ... или после / возле работи...
В мелкой могут тоже бить "звёзды" которие радо деляться знаниями