?
https://msdn.microsoft.com/en-us/library/bb397502.aspx
?
Creates an array from a string representation.
Anonymous
По ссылке разбор строки
?
ну дык да
?
сам аррей хз че там парсить там все и так распарсено уже
Алексей
Кому интересно присоединяйтесь https://t.me/nest_ru
?
valor? ну уж нет
?
я еще за бутстрап не простил
?
за онклики на весь документ в дропдаун виджете
Anonymous
А как ты это реализовал бы?
?
А как ты это реализовал бы?
я не бы а пошел и сделал через blur как нормальный человек
?
будто бы так сложно вписаться на блер и чекать мы ушли куда-то там или на самого себя
Дима
Лучше сразу расстреляйте
?
за подписку на документ без весомейших причин надо бить ящитаю
Skye 💙
Я бунтарь? А на деле как лучше обрабатывать аргументы? (ведь мы можем вводить не только один, а допустим еще через запятую)
?
.apply(this, arguments)
?
лучше не переопределять console.log
дай человеку спокойно отстрелить себе ногу
?
ненуачо
не, я ж ниче, отстреливай же :D
Skye 💙
Дима
будто бы так сложно вписаться на блер и чекать мы ушли куда-то там или на самого себя
Едж кейсы Я например сейчас не готов гарантировать что во всех случаях сделаю безотказно
Дима
Спасибо!
Вредные советы
?
Едж кейсы Я например сейчас не готов гарантировать что во всех случаях сделаю безотказно
я сделал у меня раболтает, едж кейсы путь хендлят сами кому нужны эти отщепенческие кейсы - это не повод поломать для остальных нормальных людей
Дима
Лол
?
делать нг4 но при этом опиратьтся на легаси столетней давности - сомнительная практика
Дима
Напомни, на чём у тебя там фокус висит?
?
деградация должна быть грейсфул а не по-умолчанию сделать говно а местами допилить до актуального
?
Напомни, на чём у тебя там фокус висит?
у меня все работает, если интересно обсудить можем в другой раз и в другом месте обсудить, точно не в чатике про ноду
Дима
А, блин, не тот чат
?
но за хендлеры вне своего скоупа однозначно надо спрашивать сл юдей
?
в конце концов птичку можно было влепить для легасей или отдельную файл подтягиваемый для старичья кому надо в ie6 а не по-умолчанию, в любом случае уже неважно - ушли на material-ui и теперь страдаем на другие темы
Dmitrii
эксперты вот мой тестовый стэнд: // server.js const http = require('http') const server = http.createServer(function(req, res) { res.write('1') setTimeout(() => res.write('2'), 1000) setTimeout(() => res.write('3'), 2000) setTimeout(() => res.end(), 5000) }) server.listen(3000) --- // client.js const http = require('http') const req = http.request( { hostname: 'localhost', port: 3000, path: '/', method: 'GET', headers: { 'Content-Type': 'application/json' } }, function(res) { // http.IncomingMessage res.on('data', chunk => { // ... }) res.on('end', () => { // why emits end if I kill server? console.log('END') }) res.on('close', () => { console.log('CLOSE') }) } ) req.on('error', err => { console.log('req error') }) req.end() при успешном чтении с потока res, эмитится событие end - ОК при обрыве (просто прибить сервер пока он не отдал все данные) тоже эмитится end, и только потом уже close - НЕ ОК. судя по доке на readable потоках end должен эмитится только при успешном завершении тоже самое работает как положенно на серверном req (http.IncomingMessage) Как мне отличить успешный/не успешный кейс?
Рубикон
res.on разве у него нет события ошибка?
Dmitrii
нет
Anonymous
req.on('error', err => { console.log('req error') }) Не срабатывает хочешь сказать?
Dmitrii
читай внимательно))
Dmitrii
res != req
Anonymous
Сек, аж интересно стало. Ща у себя заведу
Anonymous
Мне для теста надо прихлопнуть сервер да?
Dmitrii
да
Anonymous
Жизненно
Anonymous
Пишут что клоуз это как раз факап https://stackoverflow.com/questions/6572572/node-js-http-server-detect-when-clients-disconnect
Anonymous
Счас ищу в доке что к чему
Dmitrii
это пример сервера же
Dmitrii
и на сервере req http.IncomingMessage отрабатывает корректно, обрыв close, успех end
Anonymous
https://nodejs.org/api/http.html#http_event_aborted
Anonymous
Вот
Anonymous
aborted подпишись
Dmitrii
ну эт понятно что есть aborted, хотя непонятна разница между aborted и close. Поведение все же странное.
Anonymous
The 'close' event is emitted when the stream and any of its underlying resources (a file descriptor, for example) have been closed. The event indicates that no more events will be emitted, and no further computation will occur. **** The 'end' event is emitted when there is no more data to be consumed from the stream. Note: The 'end' event will not be emitted unless the data is completely consumed. This can be accomplished by switching the stream into flowing mode, or by calling stream.read() repeatedly until all data has been consumed. *** Event: 'aborted' Emitted when the request has been aborted and the network socket has closed.
Dmitrii
Note: The 'end' event will not be emitted unless the data is completely consumed - обрыв значит что данные не completely consumed противоречие в доках какое то
Anonymous
Разные уровни абстракции если можно так выразиться. Аборт и клоуз относятся к стриму, энд сигнализирует об окончании данных
Dmitrii
я смотрю сорцы аксиоса адаптера к ноде, они вообще не заморачиваются: https://github.com/axios/axios/blob/master/lib/adapters/http.js#L185
Dmitrii
только end и error который вероятнее всего хэндлит ошибки из zlib
Anonymous
Доку тоже люди пишут
Dmitrii
кароче, затестил такой же пример с аксиосом, обрыв не обрабатывается абортом или close, он берет end при убийстве сервера, и отдает столько данных сколько успел считать
Dmitrii
const axios = require('axios') axios .get('http://localhost:3000') .then(res => console.log(res.data)) .catch(err => console.log(err))
Dmitrii
т.е даже такой кейс считается успешным)
Dmitrii
модуль request из npm такое же поведение
Dmitrii
кароче если предположить, что эти модули писали не дураки, то вывод такой, при клиентских запросах, надо ждать end в любом случае, а после него уже на основании полученых данных решать, успех это или провал
Anonymous
СТранно, если писали не дураки, тогда зачем они подписываются на ивент которого нет? https://github.com/axios/axios/blob/master/lib/adapters/http.js#L180
Dmitrii
https://github.com/axios/axios/blob/master/lib/adapters/http.js#L147 хочешь сказать у zlib нету error?
Dmitrii
вот если что: https://github.com/nodejs/node/blob/master/lib/zlib.js#L137
Anonymous
Ну на злиб они переходят только в отдельных кейсах, а http.IncomingMessage вроде как не емитит эроры
Dmitrii
ну листенер то повесить ничего не стоит, думаю не запарились просто
Dmitrii
да уж иногда залезеш в кишки к либам за 30к, и думаешь, либо ты чего то не знаешь, либо все плохо в этом мире))
Anonymous
https://github.com/nodejs/node/blob/master/lib/_http_incoming.js
Anonymous
Или это какой-то другой Инкам
Anonymous
Напишешь аксиосам что они мудаки?
Dmitrii
это тот самый
Dmitrii
я пока не уверен что мудаки они а не я)
Anonymous
Точно не я
Anonymous
Но видимо все надеются на лучшее
Anonymous
Аксиос читает req.aborted пропертю но это не то что им надо. Вернее не на 100% то
Dmitrii
важно когда abort вызывается
Dmitrii
timeout и cancel
Dmitrii
интересно: https://github.com/request/request/blob/master/request.js#L994
ikasymov
кто работал с телеграм апи отправке кнопок в таком формате должен быть json { chat_id: messageObj.chat.id, text: text, reply_markup: {ReplyKeyboardMarkup: {keyboard: [[1, 2, 3], [1, 2, 3]]}} } ?