Size: a a a

2020 October 14

МТ

Марк Танащук... in Svelte [svelt]
Resident
Об этом ни кто особо не пишет) вроде как логично всё и так
Пишут, что реактивные выражения выстраиваются в топологическом порядке относительно того, где какие переменные меняются.

Но не пишут, что распорядок не меняется от функций, в которых происходит изменение
источник

R

Resident in Svelte [svelt]
Resident
Ну если только реактивный js юзать то наверное
Правильно пишут ведь магически исчезающий, типо новички не заморачивайтесь что внутри)
источник

MZ

Misha Zamkevich in Svelte [svelt]
Misha Zamkevich
Перепиши первую функцию в асинхронную или юзай промисы
Хотя погоди ))
источник

BB

Bohdan Bessonov in Svelte [svelt]
Misha Zamkevich
Перепиши первую функцию в асинхронную или юзай промисы
Объясню что мне надо лучше.
Есть CustomPage - некая обертка над веб страницей, не суть
есть файлик Test.ts
В Test.ts я хочу 1.1) дождаться загрузки CustomPage, либо 1.2 получить загруженную CustomPage; 2) вызывать пару ивентов у CustomPage.

То есть CustomPage - некоторый синглтон, который надо либо подождать, либо сразу юзать.

Состояние "я загрузилась" CustomPage выдает через свой собственный ивент
CustomPage.onEvent("load"), через него я ставлю переменную s_loaded
источник

MZ

Misha Zamkevich in Svelte [svelt]
А это зачем?

private static async waitLoop() {
   await FooClass.waitForLoad();
}
источник

MZ

Misha Zamkevich in Svelte [svelt]
Вот у тебя тут асинхронность сработает, а дальше ничего не произойдёт.
источник

BB

Bohdan Bessonov in Svelte [svelt]
В JS нет потоков выполнения?
источник

MZ

Misha Zamkevich in Svelte [svelt]
Простити, я начинаю дико тупить, когда вижу в TS что то сложнее типов )))
источник

MZ

Misha Zamkevich in Svelte [svelt]
Bohdan Bessonov
В JS нет потоков выполнения?
У тебя вот тут:

private static async waitLoop() {
  // Ждём результат
   await FooClass.waitForLoad();
  // Делаем что-то с результатом
}
источник

MZ

Misha Zamkevich in Svelte [svelt]
А у тебя функция ничего не делает с результатом исполнения.
источник

BB

Bohdan Bessonov in Svelte [svelt]
дак и не должна.
источник

BB

Bohdan Bessonov in Svelte [svelt]
я просто хочу подождать пока s_loaded станет true
источник

MZ

Misha Zamkevich in Svelte [svelt]
Ну как не должна, ты же потом работаешь с результатом выполнения этой функции
источник

MZ

Misha Zamkevich in Svelte [svelt]
источник

MZ

Misha Zamkevich in Svelte [svelt]
Bohdan Bessonov
я просто хочу подождать пока s_loaded станет true
Так у тебя же это просто (просто, что? Function Expression?) переменная, она один раз исполняется → в if получает false → всё, цикл окончен.
источник

BB

Bohdan Bessonov in Svelte [svelt]
Ладно. Наверное, я просто не очень хорошо понимаю многопоточность джаваскрипта.

У меня в голове это выглядит как "остановить поток1, пока значение loaded не true, раз в какое-то время спросить значение loaded, если стало true - продолжить выполнять поток1". в то время как "поток2 ждет внешний ивент, как только ивент пришел - поставить loaded в true и умереть"
источник

MZ

Misha Zamkevich in Svelte [svelt]
Bohdan Bessonov
Ладно. Наверное, я просто не очень хорошо понимаю многопоточность джаваскрипта.

У меня в голове это выглядит как "остановить поток1, пока значение loaded не true, раз в какое-то время спросить значение loaded, если стало true - продолжить выполнять поток1". в то время как "поток2 ждет внешний ивент, как только ивент пришел - поставить loaded в true и умереть"
Прочитай вот этот раздел и следующие вплоть до async/await

15-20 минут и придёт понимание.

https://learn.javascript.ru/promise-basics
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Bohdan Bessonov
Ладно. Наверное, я просто не очень хорошо понимаю многопоточность джаваскрипта.

У меня в голове это выглядит как "остановить поток1, пока значение loaded не true, раз в какое-то время спросить значение loaded, если стало true - продолжить выполнять поток1". в то время как "поток2 ждет внешний ивент, как только ивент пришел - поставить loaded в true и умереть"
Наверное проблема в том, что js однопоточный)))
источник

BB

Bohdan Bessonov in Svelte [svelt]
Pavel 🦇 Malyshev
Наверное проблема в том, что js однопоточный)))
Серьезно? О_О
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Bohdan Bessonov
Серьезно? О_О
Конечно, даже на сервере. Промисы, async/await это не более чем асинхронные операции внутри одного потока который гоняет ивент луп
источник