169 похожих чатов

Народ, можно ли сделать такую контсрукцию? подправте меня пожалуйста const Main

= React.lazy(() => {
return new Promise(resolve => {
const img = new Image();
img.src= main;
}).then(() => {
import ('./pages/main/main')
})
})

15 ответов

18 просмотров

resolve забыл вызвать

И сделать return динамического импорта тоже забыл

Чтобы сделать что-то ДО import()

Мороз Аксёнова
Чтобы сделать что-то ДО import()

хм не ясно , а так что мешает не догоню? const SomeComponent = React.lazy( async () => { /// do some const img = new Image(); img.src = main; img.onload = resolve import('./SomeComponent')).then('./pages/main/main') } все равно первое выполнится то что вверху , а в then после

Drew Naumenko
хм не ясно , а так что мешает не догоню? const S...

Ты точно так же сделал новый промис декларацией async

Мороз Аксёнова
Только неправильно

да то с await , не суть важно сетереть await просто зачем вехний промис?

const loadImage = (src) => new Promise((resolve) => { const img = new Image() img.src = src img.onload = resolve }) const loadComponentWithImages = async () => { const images = [ back, name_inp, password_inp, wallet_inp ].map(loadImage) const componentPromise = import('./pages/main/main') const allPromises = [componentPromise] .concat(images) const [component] = await Promise.all(allPromises) return component } const Main = React.lazy(loadComponentWithImages)

Вот так побыстрее будет работать. Потому что параллельно. Интересно, что на это скажет Drew

А если одна из картинок не сгрузится всё в main мы не увидим? так никто не делает что бы из-за одной картинки целую прилагу глушили. Обычно на onload спиннера крутят и не морочат головы. Вопрос в другом часто ли пользовался таким подходом как выше?

Drew Naumenko
А если одна из картинок не сгрузится всё в main мы...

Обработка ошибок обязательно должна быть, но не в демонстрации идеи (которую написал я), а в реализации (которую напишет топикстартер). И там будут onerror = reject, allSettled вместо all и вообще полный фарш

Evgeny-янисов Автор вопроса
Мороз Аксёнова
const loadImage = (src) => new Promise((resolve)...

спасибо огромное, это мне тоже помогло. но при уходе со страницы и, вернувшись назад suspsense не срабатывает(это понятно почему) и изображения грузятся как бы при "пользователи". можно ли сделать, чтобы эти изображения сохранялись как то?

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
у вас два процесса. один посылает другому сигнал. у вас есть код обоих процессов? если всё не так - расскажите как оно на самом деле. а именно кто кому чего, есть-ли консоли,...
Karagy
6
Карта сайта