Size: a a a

Angular - русскоговорящее сообщество

2021 February 25

VS

Vladimir Stempel 👁🍵... in Angular - русскоговорящее сообщество
Morning Star
И сравнивать
ничего сравнивать не надо, просто из case в ключ выносишь, а в значение функцию, потом просто return actions[action.type]
источник

ЕВ

Евгений Войтенко... in Angular - русскоговорящее сообщество
Anton Shvets
можно заменить кучей подписок, но вроде и так норм.
в редуксе все точно так же
огромный switch case - это анти паттерн) во всяком случае так говорят джависты, хочу сделать рефактр.
источник

ЕВ

Евгений Войтенко... in Angular - русскоговорящее сообщество
Vladimir Stempel 👁🍵
ничего сравнивать не надо, просто из case в ключ выносишь, а в значение функцию, потом просто return actions[action.type]
Типо такого?
var myFuncs = {
 func1: function () { alert('Function 1'); },
 func2: function () { alert('Function 2'); },
 func3: function () { alert('Function 3'); },
 func4: function () { alert('Function 4'); },
 func5: function () { alert('Function 5'); }
};
// execute the one specified in the 'funcToRun' variable:
myFuncs[funcToRun]();
?
источник

VS

Vladimir Stempel 👁🍵... in Angular - русскоговорящее сообщество
Евгений Войтенко
огромный switch case - это анти паттерн) во всяком случае так говорят джависты, хочу сделать рефактр.
ну да, но это редаксовский подход просто)
источник

VS

Vladimir Stempel 👁🍵... in Angular - русскоговорящее сообщество
Евгений Войтенко
Типо такого?
var myFuncs = {
 func1: function () { alert('Function 1'); },
 func2: function () { alert('Function 2'); },
 func3: function () { alert('Function 3'); },
 func4: function () { alert('Function 4'); },
 func5: function () { alert('Function 5'); }
};
// execute the one specified in the 'funcToRun' variable:
myFuncs[funcToRun]();
?
ну типа да)
источник

AS

Anton Shvets in Angular - русскоговорящее сообщество
Евгений Войтенко
огромный switch case - это анти паттерн) во всяком случае так говорят джависты, хочу сделать рефактр.
объект с замыканиями не лучше
источник

VS

Vladimir Stempel 👁🍵... in Angular - русскоговорящее сообщество
просто объект можно вынести в отдельный файл, в константу
источник

VS

Vladimir Stempel 👁🍵... in Angular - русскоговорящее сообщество
Anton Shvets
объект с замыканиями не лучше
ну чего, зато циклов никаких не надо
источник

AS

Anton Shvets in Angular - русскоговорящее сообщество
плюс свитча в том, что по нему проще отследить выполнение кода
источник

AS

Anton Shvets in Angular - русскоговорящее сообщество
Vladimir Stempel 👁🍵
ну чего, зато циклов никаких не надо
каких циклов?
источник

VS

Vladimir Stempel 👁🍵... in Angular - русскоговорящее сообщество
Anton Shvets
плюс свитча в том, что по нему проще отследить выполнение кода
эт да
источник

VS

Vladimir Stempel 👁🍵... in Angular - русскоговорящее сообщество
Anton Shvets
каких циклов?
ну свитч тоже своего рода цикл
источник

AS

Anton Shvets in Angular - русскоговорящее сообщество
и еще плюс что не создается лишних сущностей
источник

ЕВ

Евгений Войтенко... in Angular - русскоговорящее сообщество
Vladimir Stempel 👁🍵
ну типа да)
а как туда аргументы передать, при этом они могут быть разные и чтобы типизация это дело проверила? Это возможно?
источник

🏡K

🏡 ILshat Khamitov in Angular - русскоговорящее сообщество
классами сделай и через мульти диай подрубай каждый обработчик, в классе сделай публичное свойство и по нему проверяй
class LoadMyTasks implements TaskHandler{
public type:TaskAction = TaskAction.LOAD_MY_TASKS;
public handler(state:TaskState){
}
}

providers[{provide: TASK_HANDLER, useClass: LoadMyTasks, multi: true}]

можно будет много разных модулей пилить в разных частях проги и потом в одном месте все собрать
источник

ЕВ

Евгений Войтенко... in Angular - русскоговорящее сообщество
Vladimir Stempel 👁🍵
ну типа да)
Вот так?
return TaskHandler[action.type](state, action);

export class TaskHandler {
 public static [TaskActions.LOAD_MY_TASKS] = (state: TaskStore) =>
   handleLoadMyTasks(state);
 public static [TaskActions.LOAD_MY_TASKS_COMPLETE] = (state, action) =>
   handleLoadMyTasksComplete(state, action);
}
источник

AS

Anton Shvets in Angular - русскоговорящее сообщество
🏡 ILshat Khamitov
классами сделай и через мульти диай подрубай каждый обработчик, в классе сделай публичное свойство и по нему проверяй
class LoadMyTasks implements TaskHandler{
public type:TaskAction = TaskAction.LOAD_MY_TASKS;
public handler(state:TaskState){
}
}

providers[{provide: TASK_HANDLER, useClass: LoadMyTasks, multi: true}]

можно будет много разных модулей пилить в разных частях проги и потом в одном месте все собрать
это по факту подписка
источник

VS

Vladimir Stempel 👁🍵... in Angular - русскоговорящее сообщество
Евгений Войтенко
Вот так?
return TaskHandler[action.type](state, action);

export class TaskHandler {
 public static [TaskActions.LOAD_MY_TASKS] = (state: TaskStore) =>
   handleLoadMyTasks(state);
 public static [TaskActions.LOAD_MY_TASKS_COMPLETE] = (state, action) =>
   handleLoadMyTasksComplete(state, action);
}
да, можно так
источник

🏡K

🏡 ILshat Khamitov in Angular - русскоговорящее сообщество
Anton Shvets
это по факту подписка
отписка
источник

VS

Vladimir Stempel 👁🍵... in Angular - русскоговорящее сообщество
пиписка😁
источник