# task - here will be task - MobX - create react app - typescript # TASK ## Часть 1 У нас есть 3 url, возвращающие `number[]` Выраженные примерно такими функциями: ``` async getA(): Promise<number[]> { return new Promise((resolve) => { setTimeout(() => { resolve([ 1, 1, 1, 1 ]); }); }); } ``` ``` async getB(): Promise<number[]> { return new Promise((resolve) => { setTimeout(() => { resolve([ 2, 2, 2, 2 ]); }); }); } ``` ``` async getC(): Promise<number[]> { return new Promise((resolve) => { setTimeout(() => { resolve([ 3, 3, 3, 3 ]); }); }); } ``` Массивы одинаковой длинны (для упрощения задачи) Нужно написать объект состояния на mobx, с массивами `a`, `b`, `c`, `d`, где `a`, `b`, `c` - данные полученные с функций приведённых выше (это как бы http запросы), а `d` это массив вычисляемый как `d[i] = a[i] * b[i]` Состояние из mobx нужно render'ить в `App.tsx`, простым сопособом, как числа разделённые запятой: ``` a: 1, 1, 1, 1 b: 2, 2, 2, 2 c: 3, 3, 3, 3 d: 2, 2, 2, 2 ``` ## Часть 2 Добавить кнопку в UI, по нажатии на которую будет произведён запрос `getA`. Мы предполагаем что состояние на сервере изменилось и в ответ сервер отдаст другой ответ, скажем `[5,5,5,5]` И соответственно состояние в mobx должно обновится корректно. И в UI должны отобразится данные, по прежнему соответствующие приведённым выше правилам: > `a`, `b`, `c` - данные полученные с функций приведённых выше (это как бы http запросы), а `d` это массив вычисляемый как `d[i] = a[i] * b[i]` PS: Если есть вопросы - пишите