powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Подскажите по Promise
25 сообщений из 96, страница 3 из 4
Подскажите по Promise
    #39917751
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Добрый день.
Не получается вызвать синхронно два ajax.
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
returnPromise().then(log(1), log(2)).catch....

function returnPromise() {
    return new Promise((resolve, reject) => {
          return $.ajax(.....
               .... 
                success:
                      if 200 reject();



Мне на 200 нужно именно остановить выполнение второго ajax.
А сейчас и log(1) и log(2) вызываются.
Спасибо.
дык ты написал выражение, где log(1) и log(2) вызываются явно и результат их выполнения передаётся в then
тебе на это уже указывали
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917756
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,
Переведи про вызов явно.
Я еще не проверил способ с лямбдой от Alexander A. Sak.
Если ты про это то он волшебник профи.
Я не просек что лямбда влияет.
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917762
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp,

ты выполнил функцию log два раза и передал результаты выполнения в then
а не то, что ты ожидаешь

необходимо передавать либо имя метода обработчика, внутри которого вызов log с нужными параметрами;
либо анонимную функцию, внутри которой вызов log с нужными параметрами;
либо лямбду, внутри которой... об этом тебе написали выше
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917767
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander A. Sak
PetroNotC Sharp
Добрый день.
Не получается вызвать синхронно два ajax.
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
returnPromise().then(log(1), log(2)).catch....

function returnPromise() {
    return new Promise((resolve, reject) => {
          return $.ajax(.....
               .... 
                success:
                      if 200 reject();



Мне на 200 нужно именно остановить выполнение второго ajax.
А сейчас и log(1) и log(2) вызываются.
Спасибо.


Может, надо не вызывать log(1) и log(2), а передавать функции, вызывающие log(1) и log(2)? Что-то типа
Код: javascript
1.
returnPromise().then(()=>{log(1)}, ()=>{log(2)}).catch....

круто брат.
Лямбда все меняет. Зазубрю так как мозги не понимают.
Спасибо профи.
Спасибо всем кто помогал.
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917774
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
У тебя xhttp.send( один раз А нужно в примере два раза.

Ну так дёргается два раза await getData и всё. Я как пример написал, чтобы было понятно, откуда кишки висят, можно и с $.ajax, если он промис выдаёт.
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917775
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Зазубрю так как мозги не понимают.

https://learn.javascript.ru/first-steps

уроки 15 и 16
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917779
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster
можно и с $.ajax, если он промис выдаёт

он выдаёт джикверивский объект Деферред, что по сути реализует интерфейс промиса
так что можно, подробности в доке: https://api.jquery.com/JQuery.ajax/
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917793
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp,
а как ты 302 статус предаёшь?
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917802
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя
PetroNotC Sharp,
а как ты 302 статус предаёшь?
я ленивый. Это appServer GlassFish и форма авторизации его.
Достаточно пометить какой урл защитить.
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917806
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster
await
я это слово в js пока не знаю. Знаю в шарпе.
Поэтому мнения о нем нет(.
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917821
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp,

промис тебе точно нужен?
просто объявить два метода и использовать, чем не устроило?
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917829
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA
PetroNotC Sharp,

промис тебе точно нужен?
просто объявить два метода и использовать, чем не устроило?
идут асинхронно оба. А мне нужно синхронно.
Читал про when но не понял.
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917841
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
я это слово в js пока не знаю. Знаю в шарпе

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
//есть какая-то асинхронная функция
var f = async function() {
    //есть еще две таких же f1 и f2
    //если результат f1 == 0 вызвать f2 и вывести результат, иначе вывести 0
    //можно так:
    f1.then((res)=>{
        if (res == 0) return f2();
        return 0;
    }).then((res=>{ 
        console.log(res);
    });
    //А можно так: 
    var res = await f1();
    if (res == 0) {
       res = await f2();
    } else {
       res = 0;
    }
    console.log(res);
}
//Очевидно, что первый вариант - полное дерьмище.
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917869
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster,
Понимаешь, что для меня лично не логично.
В шарпе операторы async/await служат ДЛЯ ПРЕОБРАЗОВАНИЯ ОБЫЧНОГО СИНХРОННОГО КОДА В АСИНХРОННЫЙ.
А тут мне надо наоборот. Поэтому мой ум сопротивляется))).
Ну тут и языки разные.
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917877
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
skyANA
PetroNotC Sharp,

промис тебе точно нужен?
просто объявить два метода и использовать, чем не устроило?
идут асинхронно оба. А мне нужно синхронно.
Читал про when но не понял.

Смотри, ты реализовал следующую конструкцию:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
returnPromise().then(log(1), log(2)).catch....

function returnPromise() {
    return new Promise((resolve, reject) => {
          return $.ajax(.....
               .... 
                success:
                      if 200 reject();


Не работает, потому как надо передавать ссылку на функцию, а не на результат её выполнения.

Простейший вариант - это тупо объявить два метода:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
function one() {
    log(1);
}

function two() {
    log(2);
}


и всё заработает:
Код: javascript
1.
returnPromise().then(one, two).catch....


Но теперь внимание вопрос: а зачем это всё заворачивать в промис, если можно тупо:
Код: javascript
1.
2.
3.
4.
$.ajax(.....
    .... 
    success:
        if 200 two();


?
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917880
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
crutchmaster,
Понимаешь, что для меня лично не логично.
В шарпе операторы async/await служат ДЛЯ ПРЕОБРАЗОВАНИЯ ОБЫЧНОГО СИНХРОННОГО КОДА В АСИНХРОННЫЙ.
А тут мне надо наоборот. Поэтому мой ум сопротивляется))).
Ну тут и языки разные.

Не для преобразования синхронного кода в асинхронный, а для написания асинхронного кода так, будто он синхронный.
Ровно тоже самое и в JavaScript, ровно это тебе по сути и нужно.
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917882
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA
Не для преобразования синхронного кода в асинхронный, а для написания асинхронного кода так, будто он синхронный.
для меня это одно и тоже.
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917884
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA
и всё заработает
нет. У меня была первая функция, а второй параметер console.log
Не работало.
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917887
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
skyANA
и всё заработает
нет. У меня была первая функция, а второй параметер console.log
Не работало.
Не работало, потому как ты допустил ошибку, передав не указатель на функцию, а её результат.
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917901
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA
PetroNotC Sharp
пропущено...
нет. У меня была первая функция, а второй параметер console.log
Не работало.
Не работало, потому как ты допустил ошибку, передав не указатель на функцию, а её результат.
блин, я написал параметром ИМЯ ФУНКЦИИ.
А сейчас к Имени добавил только лямбду стрелочки.
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39918065
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
skyANA
пропущено...
Не работало, потому как ты допустил ошибку, передав не указатель на функцию, а её результат.
блин, я написал параметром ИМЯ ФУНКЦИИ.
А сейчас к Имени добавил только лямбду стрелочки.

Добавил к имени только лямбду стрелочки - это как вообще? Можешь код показать?
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39918080
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
returnPromise().then( () => functionMyAjax() ,... ).catch...
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39918097
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
PetroNotC Sharp
returnPromise().then( () => functionMyAjax() ,... ).catch...

Имя функции - это functionMyAjax.
Вызов функции - это functionMyAjax().

Ты последнее завернул в выражение и получил ссылку на анонимную функцию.
А мог просто передать ссылку по имени.
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39918172
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA
Имя функции - это functionMyAjax.
Вызов функции - это functionMyAjax().

В первом случае будет ошибка. Поэтому по контексту понятно что вызов и со скобками.
skyANA
Ты последнее завернул в выражение и получил ссылку на анонимную функцию.

Я в курсе давно что я сделал.

skyANA
А мог

Бери пример с Alexander A. Sak, он просто код пару строк написал вместо бесконечных разговоров что я "мог сделать".
У нас с тобой терминология разная. Меньше слов и больше кода.
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39918183
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp,

код я тебе дал, но тебе поговорить хочется
дело твоё

Удачи :)
...
Рейтинг: 0 / 0
25 сообщений из 96, страница 3 из 4
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Подскажите по Promise
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]