Во vue 2 можно ли как-то дождаться отрисовки всех дочерних компонентов, чтобы в родителе выполнить scrollIntoView непосредственно к конкретному дочернему компоненту?

|
eternalWayDev 2022-07-01 19:43:11
vuejs_club-749421.jpg

eternalWayDev 2022-07-01 19:43:11
Если да, то тогда я ловлю promis
eternalWayDev 2022-07-01 19:43:11
eternalWayDev 2022-07-01 19:43:11
Для Api.get?
eternalWayDev 2022-07-01 19:43:11
Для Api.get?
eternalWayDev 2022-07-01 19:43:11
Return
eternalWayDev 2022-07-01 19:43:11
бэк возвращает мне массив, но оно просто не дожидается его
eternalWayDev 2022-07-01 19:43:11
vuejs_club-749415.jpg

eternalWayDev 2022-07-01 19:43:11
vuejs_club-749414.jpg

eternalWayDev 2022-07-01 19:43:11
Ребят, направьте на верный путь пожалуйста…чёт я делаю не так

Вот у меня есть функция и её вызов

Но там где вызов происходит я ловлю undefined..оно не дожидается пока отработает цепочка. Что я делаю не так?

eternalWayDev 2022-07-01 19:43:11
Подскажите пожалуйста если кто понимает в чём причина
staslashmanov 2022-07-01 19:45:01
eternalWayDev 2022-07-01 19:43:11
Если да, то тогда я ловлю promis

А что удивительного?

eternalWayDev 2022-07-01 19:45:24
В общем цель состоит в том, чтобы присвоить уже обработанный промис
eternalWayDev 2022-07-01 19:45:34
что я делаю не так чтобы достичь цели?
eternalWayDev 2022-07-01 19:45:56
т.к. я его там обрабатываю и нужен именно результат который вернёт цепочка
staslashmanov 2022-07-01 19:45:57
eternalWayDev 2022-07-01 19:45:24
В общем цель состоит в том, чтобы присвоить уже обработанный промис

В js так не пишут, вам для этого нужно будет заблокировать основной поток в таком случае.

staslashmanov 2022-07-01 19:46:15
eternalWayDev 2022-07-01 19:45:34
что я делаю не так чтобы достичь цели?

Вам нужно разобраться как работать с асинхронным кодом в js

staslashmanov 2022-07-01 19:46:21
В том числе с промисами
eternalWayDev 2022-07-01 19:46:23
да, есть в этом пробельчик
staslashmanov 2022-07-01 19:46:37
learn.javascript.ru
eternalWayDev 2022-07-01 19:47:05
т.е. выходит чтобы достичь цели мне необходимо везде где я вызываю эту функцию приписывать всю остальную цепочку?
staslashmanov 2022-07-01 19:47:33
eternalWayDev 2022-07-01 19:47:05
т.е. выходит чтобы достичь цели мне необходимо везде где я вызываю эту функцию приписывать всю остальную цепочку?

Не понимаю что такое прописывать всю остальную цепочку

eternalWayDev 2022-07-01 19:47:44
then & catch
staslashmanov 2022-07-01 19:47:44
Вам придётся обрабатывать промис, других вариантов нет
eternalWayDev 2022-07-01 19:47:49
Понял
eternalWayDev 2022-07-01 19:48:08
думал есть какой-то ещё вариант
djaler 2022-07-01 19:49:08
или использовать async-await
djaler 2022-07-01 19:49:29
но в любом случае, нельзя синхронно получить результат из асинхронной функции
eternalWayDev 2022-07-01 19:49:30
пробовал)

Может конечно из-за своего пробела я неверно юзал его

eternalWayDev 2022-07-01 19:49:38
понял, спасибо)
vshulhin 2022-07-01 20:08:29
Всем привет, во vue 2 можно ли как-то дождаться отрисовки всех дочерних компонентов, чтобы в родителе выполнить scrollIntoView непосредственно к конкретному дочернему компоненту?
djaler 2022-07-01 20:09:38
vshulhin 2022-07-01 20:08:29
Всем привет, во vue 2 можно ли как-то дождаться отрисовки всех дочерних компонентов, чтобы в родителе выполнить scrollIntoView непосредственно к конкретному дочернему компоненту?

можно подписаться на событие hook:mounted у компонента

vshulhin 2022-07-01 20:12:59
djaler 2022-07-01 20:09:38
можно подписаться на событие hook:mounted у компонента

имеется ввиду обычный хук mounted ? или какое-то событие, которое триггерит компонент именно “hook:mounted” ?

djaler 2022-07-01 20:13:20
vshulhin 2022-07-01 20:12:59
имеется ввиду обычный хук mounted ? или какое-то событие, которое триггерит компонент именно “hook:mounted” ?

когда компонент монтируется, он кидает событие hook:mounted

djaler 2022-07-01 20:13:33
в родительском компоненте ты можешь на это событие подписаться
djaler 2022-07-01 20:13:38
и выполнить нужную тебе логику
djaler 2022-07-01 20:13:52
<child @hook:mounted=»doThings»
squozb 2022-07-01 20:15:15
интересно, а nextick в mounted родителя сработает ли?
djaler 2022-07-01 20:18:28
squozb 2022-07-01 20:15:15
интересно, а nextick в mounted родителя сработает ли?

для синхронных компонентов да

djaler 2022-07-01 20:18:38
но дочерний может грузиться асинхронно, теоретически
squozb 2022-07-01 20:18:58
в двойке?
squozb 2022-07-01 20:19:17
в тройке точно есть асинхронные компоненты
djaler 2022-07-01 20:19:21
я про динамический импорт
staslashmanov 2022-07-01 20:33:52
djaler 2022-07-01 20:09:38
можно подписаться на событие hook:mounted у компонента

Зачем

staslashmanov 2022-07-01 20:34:09
vshulhin 2022-07-01 20:08:29
Всем привет, во vue 2 можно ли как-то дождаться отрисовки всех дочерних компонентов, чтобы в родителе выполнить scrollIntoView непосредственно к конкретному дочернему компоненту?

Когда срабатывает mounted то все дочерние компоненты отрисовались

eldarda 2022-07-01 20:36:51
staslashmanov 2022-07-01 20:34:09
Когда срабатывает mounted то все дочерние компоненты отрисовались

Всмысле, в доке написано, что не факт

eldarda 2022-07-01 20:37:25
staslashmanov 2022-07-01 20:34:09
Когда срабатывает mounted то все дочерние компоненты отрисовались

https://v3.ru.vuejs.org/ru/api/options-lifecycle-hooks.html#mounted

Хуки жизненного цикла | Vue.jsv3.ru.vuejs.org
Vue.js — Прогрессивный JavaScript-фреймворк
staslashmanov 2022-07-01 20:38:37
eldarda 2022-07-01 20:37:25
https://v3.ru.vuejs.org/ru/api/options-lifecycle-hooks.html#mounted

Я не знаю откуда это там

staslashmanov 2022-07-01 20:38:54
Mounted всплывает вверх от дочернего к родительскому компоненту
eldarda 2022-07-01 20:39:10
Надо тогда ишью зарепортить
staslashmanov 2022-07-01 20:39:29
Поэтому компоненты точно отрисуются. Другой вопрос что там могут быть асинхронные компоненты, тут уже надо через события действовать.
|