• Как избавиться от кучи if в методе?

    @itPiligrim
    Front-end разработчик + 1С
    Просто создаются методы вроде "ВыдатьСкидку", "ВыдатьПостояннуюСкиду", "ВыдатьКупон" и вызываются последовательно. Логика каждого метода зашита в методе. В корневом методе никаких if нет. Код читается сверху вниз линейно. Каждый метод в начале имеет проверку условий и если условия не удовлетворяются, то метод сразу выходит. Сложнее будет, если методы будут взаимосвязаны, но это уже другая история.
    Ответ написан
    Комментировать
  • RxJs - как добавить условный оператор в поток?

    @itPiligrim
    Front-end разработчик + 1С
    rxjs не создан для замены всего кода. Его смысл в том, что "все на свете" можно представить единообразно в виде потоков, а потом их комбинировать, изменять, подписывать на них и т.п. Думайте о том, какие потоки Вам нужны.

    В данном коде плохо то, что внутри промиса вызывается navigateByUrl. Это неправильно. Вы создаете поток, но при этом внутри него делаете что-то непонятное, чуждое этому потоку. Задача потока только эмитеть значения. Следует убрать сторонние вызовы. Надо сделать чистый промис, задача которого вернуть нечто, что позволит потом принять какие-то решения по навигации и т.п. Сам промис можно сконвертировать в Observable через FromPromise или сразу оформить через Observable. Это уже не суть. Промис - это тоже поток, только немного в другом формате, поэтому нет смысла ставить задачу переписать промис в Observable. Это тоже самое, как заменять let на const. Да, красивее, но смысл почти не меняется.

    Поэтому просто сделайте промис чистым, а переход вынесите наружу.
    Ответ написан
    Комментировать
  • Как создать локальное HTML веб-приложение?

    @itPiligrim Автор вопроса
    Front-end разработчик + 1С
    Сам отвечу. Пока к разработке не приступал, но остановился на связке: nw.js + expressjs ( expressjs.com/ru ) + portable chrome.

    Смысл в том, что на nw.js + expressjs пишется лаунчер, то есть не само приложение, а локальный сервер со своим простым интерфейсом, который стартует при запуске и в нем будет кнопка для запуска непосредственно приложения. На это сервисное приложение можно повесить еще разные настройки. Для данной задачи оказалось удобно. Сервисное приложение уже запускает portable chrome и через локальный веб-сервер в нем уже крутится основное приложение. На nw.js все реализовать не получалось, так как html, который надо запускать представляет собой зоопарк технологий, начиная от flash и заканчивая видео и других библиотек, в т.ч. и устаревших. Такое корректно работает только в полноценном браузере.
    Ответ написан
    Комментировать