Size: a a a

2021 October 15

Я

Ярослав in JS
По-прежнему неясно в чем проблема, но попробуй this.Cookis перед setTimeout вызывать, если хочешь после его вызова секунду выждать...
А то сейчас смысл такой: ждем секунду, затем оба метода вызываем. Видимо, не то что требуется, да и общий смысл промис-обертки неуловим))
источник

AM

Andrij Melnik in JS
У меня через 1s срабатывает setTimeOut, не дожитдаясь ответа функции this.Cookis() срабативает this.AxiosBD()
источник

AM

Andrij Melnik in JS
мне нужно чтоби после ответа this.Cookis() начинала работать this.AxiosBD()
источник

AM

Andrij Melnik in JS
после окончания одной функции срабативал след., а не одноверменно работать
источник

Я

Ярослав in JS
Потому что код который ты написал - ждет 1 секунду, а после этого последовательно вызывает this.Cookis и this.AxiosBD. Это уже упоминалось выше.
источник

AM

Andrij Melnik in JS
я и спрашиваю как мне ето зделать
источник

AM

Andrij Melnik in JS
.
источник

AM

Andrij Melnik in JS
@yar85, весь js, если поможет )
источник

Я

Ярослав in JS
Сейчас метод this.Cookis никакого "ответа" не дает, а ставит таймаут и сразу же выходит. Срабатывания таймаута при этом не ожидается. Чтобы ожидалось, нужно сделать то что я с самого начала рекомендовал - обернуть код в методе this.Cookis в промис:
<...>.Cookis = function () {
 return new Promise(resolve => setTimeout(() => {
   ► помещаешь весь имеющийся код метода в эту позицию ◄
   resolve();
 }, 1000));
};
Ну, я предполагаю что секундная задержка перед выполнением кода метода все же нужна.

Зачем вместо этого ты оборачиваешь вызов метода, и на что надеешься при этом - мне искренне непонятно.
источник

AM

Andrij Melnik in JS
асинхронность мене пока тяжело понять, сейчас попробую
источник

AM

Andrij Melnik in JS
@yar85  не работает
источник

AM

Andrij Melnik in JS
-
источник

AM

Andrij Melnik in JS
источник

Я

Ярослав in JS
Во-первых, this.Cookis теперь возвращает промис, поэтому либо
this.Cookis().then(() => {
 // код который должен выполняться после исполнения промиса
});
либо делаешь функцию где этот метод вызывается асинхронной (дописываешь ключевое слово async) и
await this.Cookis();
// код который должен выполняться после исполнения промиса

Поясню еще раз, что код this.Cookis при этом будет выполняться после задержки в 1 секунду и затем резолвить промис, а код далее выполнится уже без задержки.
То же самое было бы при оборачивании всех вызовов в setTimeout, то есть обертка внутреннего кода метода this.Cookis в промис нужна только если задача в том чтобы этот метод всегда ждал секунду перед тем как начать свою работу.
источник

C

CodeAsm in JS
а что IE11 в теге img в src нельзя ссылки на картинки с параметрами вставлять? что-то не нашёл такой инфы в инете. сайт должен в ie работать, не мне решать. контент и картинки из CMS прилетает, только недавно ссылки на картинки начали полетать с параметрами. перестали в ie отображаться.
источник

Я

Ярослав in JS
С параметрами == с query строкой в URL, типа src="img/picture.png?foo=bar"? Если да, то можно. Инфы нет потому что в любом браузере можно, это вполне нормативный формат URL (уже не помню номер RFC который их описывает, но легко гуглится при желании).
«перестали в ie отображаться» - в таких случаях имеет смысл в первую очередь посмотреть консоль, и то что сервер вернул в ответе на запрос.
источник

C

CodeAsm in JS
понятно. я так и не нагуглил что ie такое не потдерживает. так что не в этом проблема похоже
источник

Я

Ярослав in JS
Вангую что сервер перестал отдавать картинку некоторое время назад, но раньше в IE она бралась из кэша (добавление query-строки заставило браузер обратиться к серверу, тут-то и "сломалось").
источник

AM

Andrij Melnik in JS
спасибо ОГРОМНОЕ, сработало:

this.Cookis().then(() => {
 // код который должен выполняться после исполнения промиса
});
источник

AM

Andrij Melnik in JS
ошибка при async
источник