
Ҫѐҏӗѫӑ
27.06.2016
23:56:55
в блюберд норм
но это либа, а не нативные штуки

Nikita
27.06.2016
23:57:54
вот стандартные each/map/filter/reduce, props и cancel для некоторых случаев
и все будут в экстазе

Google

Ҫѐҏӗѫӑ
27.06.2016
23:58:14
да, это надо

Nikita
27.06.2016
23:58:26

Ҫѐҏӗѫӑ
27.06.2016
23:58:33
и это как раз норм реализуется с помощью асинхронных генераторов

Nikita
27.06.2016
23:58:58
да они их оптимизировать еще 100 лет будут
в bluebird все быстро работает на vanilla js, старом добром es5

Ҫѐҏӗѫӑ
27.06.2016
23:59:17
это не значит, что они не нужны
в блюберд и промисы быстрее нативных, и их отменять можно
но почему-то фетч не блюберд юзает

Nikita
28.06.2016
00:00:00
не, зачем отменять
там же на js написано

Ҫѐҏӗѫӑ
28.06.2016
00:00:10
чтобы отменить

Nikita
28.06.2016
00:00:11
копипаст иногда полезная штука
а, все, не так понял))

Google

Nikita
28.06.2016
00:02:50
блюберд в приложение фронтендское тащить можно, если реально много на промисах написано. Мне в фронтенде обычно нативных хватает + хелперы

Ҫѐҏӗѫӑ
28.06.2016
00:03:58
так о чем и речь. бтв мне в экстеншне для хрома понадобились продвинутые паттерны для промисов (там куча асинхронщины в хром апи)
и мне тоже не хотелось тащить блюберд
ради 1-2 кейсов

Nikita
28.06.2016
00:04:38
минутка оффтопика)) Хотел в автошколу пойти, все никак. Зато автошкола уже раз 10 просит оплатить себя скидывая цену и грозя убрать скидку. А арифметика у них на высоте))

Ҫѐҏӗѫӑ
28.06.2016
00:04:45
так бы я взял что-то типа лодаша, но для асинхронщины, такого же модульного

Nikita
28.06.2016
00:05:12
там блюберд можно собрать, как лодаш с нужными фичами
но это не так удобно, к сожалению

Ҫѐҏӗѫӑ
28.06.2016
00:05:34
да, и он захочет свои промисы
ура. нашел в вебките тикет
но не могу найти как подписаться пздц

Nikita
28.06.2016
00:07:13
а из бабеля совсем автор ушел?
раньше issue за 5 минут-час ну максимум закрывали. Уже 2-3 дня даже не ответили(

Ҫѐҏӗѫӑ
28.06.2016
00:09:33
он пилит для реакта новую фигню
там теперь логан смит, хенри зуу рулят
и прочие
даже джеймс кайл уже все

Artyom
28.06.2016
00:09:58

Nikita
28.06.2016
00:10:36

Ҫѐҏӗѫӑ
28.06.2016
00:13:33
чтобы реакт инициализировался быстрее

Google

Ҫѐҏӗѫӑ
28.06.2016
00:13:43
на реакт европ он рассказывал
видос должен быть
https://www.youtube.com/watch?v=xbZzahWakGs
забавно. в вебките и фф асинк ф-ии пилят одни японцы

anoru
28.06.2016
06:44:51
600 мессаг за ночь, ребята, это мощно, но я осилил )

Andrey
28.06.2016
07:39:40

Dmitry
28.06.2016
07:40:36

Art
28.06.2016
07:44:04

Dmitry
28.06.2016
07:44:57
Вот кстати что fetch не может быть зааборчен - это грусть печаль
Иногда подгорает от этого

Art
28.06.2016
07:45:56
Для такого супер-конкретного кейса юзай колбеки.

Denis
28.06.2016
07:47:17
superagent+bluebird же

Dmitry
28.06.2016
07:55:23

Pavel
28.06.2016
08:00:05
ребята подскажите плиз как правильно сделать
есть моделька EmailList
в ней лежат Email'ы
как правильно менять их чтобы в редюсере состояние новое было, а не копировалось
код простейший, тренируюсь тут)

Google

Pavel
28.06.2016
08:00:59
class EmailsList {
constructor(emails = []) {
this.emails = emails;
}
addEmail() {
this.emails.push(new Email());
}
removeEmail(index) {
if (this.emails[index] !== undefined) {
delete this.emails[index];
}
}
}
class Email {
constructor(email) {
this.email = email;
this.error = null;
}
addError(error) {
this.error = error;
}
removeError() {
this.error = null;
}
}

Алексей
28.06.2016
08:01:06
используй {...state}, как и в доках пишут

Pavel
28.06.2016
08:01:37
я буду возвращать состояние со старой ссылкой на объект EmailList
разве нет?
т.е. если я сделаю допустим
let emailsList = state.emailsList;
emailsList.addEmail();
return {...state, emailsList: emailList};
то это будет норм?
там же emailsList будет старый

Алексей
28.06.2016
08:04:13
>let emailsList = state.emailsList;
let emailList = {...state.emailsList}

Admin
ERROR: S client not available

Алексей
28.06.2016
08:04:21
ссылка будет новая

Pavel
28.06.2016
08:05:14
хм
сейчас проверю)
Меняется тип state.emailsList
с EmailsList {emails: Array[4]} "object"
на shareModal.js:53 Object {emails: Array[4]} "object"
и я естественно уже не могу пользоваться методами addEmail, changeEmail и т.д.

Алексей
28.06.2016
08:10:33
как вариант может реализовать какой-нить метод, который возвращает тот ж самый объект, только по новой ссылке
но эт чет замороченно как то
а ты в редьюсере прямо экземпляр класса держишь?
почему бы не держать в редьюсере чистый массив эмейлов
но менять его с помощью экземпляра класса твоего

Google

Алексей
28.06.2016
08:12:50
тип emailList.getEmails() возвращает все емейлы ( с новой ссылкой )
и ты в редьюсере уже пишешь
{...state, emailList: emailList.getEmails()}


Pavel
28.06.2016
08:14:18
да, экземпляр
хм, интересная мысль, спасибо большое, сейчас попробую
вот так норм, работает:
initialState.emailsList.addEmail();
initialState.emailsList.addEmail();
initialState.emailsList.addEmail();
initialState.emailsList.addEmail();
console.log(initialState.emailsList, typeof initialState.emailsList);
const a = initialState.emailsList;
initialState.emailsList = new EmailList(a.getEmails());
console.log(initialState.emailsList, typeof initialState.emailsList);
initialState.emailsList.addEmail();
initialState.emailsList.addEmail();
console.log(a.emails, initialState.emailsList.emails);
это естественно тестовый код, если что:)
еще 1 вопрос, допустим я использую переменную emailsList, определяю ее через let, но тогда в другом кейсе такую переменную уже не определить, ведь она не может повторяться в одном блоке кода
тогда делаем тукую штуку через var?
хотя можно до switch переменную эту объявить и тогда проблем нет)


Алексей
28.06.2016
08:21:44
нее, let видна в каждом блоке своя
switch(t) {
case 1: {let a = 10}
case 2: {let a = 11}
}
не будет ошибки

Pavel
28.06.2016
08:26:11
спасибо Алексей
подскажите еще плиз, нормально ли в стейтлесс компоненте задавать функцию onClick={e => {e.preventDefault(); props.doAction()}} или лучше в родителе doAction переопределять?

Alex
28.06.2016
09:24:52
Я обычно делаю функцию простую
function handleClick(props) {
return e => {
e.preventDefault();
props.doAction();
};
}
а потом юзаю ее <a href="#click" onClick={handleClick(props)}>Click me</a>
Но тут зависит от задачи сильно)

Алексей
28.06.2016
09:26:09
я наоборот все в стейтлес компонентах передаю так как есть

Pavel
28.06.2016
09:26:44
AlexWolf - это в родителе такое объявление идет?

Andrey
28.06.2016
09:26:54

Pavel
28.06.2016
09:27:00
просто задолбливает каждую функцию которая на onClick в родителе дублировать