powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Подскажите по Promise
96 сообщений из 96, показаны все 4 страниц
Подскажите по Promise
    #39917323
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) вызываются.
Спасибо.
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917354
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp,

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

остановить ajax не получится.

Не верю.
А как сделать чтобы log(1) не писалось в логи?
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917368
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
А как сделать чтобы log(1) не писалось в логи?
поточнее задачу опиши
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917372
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
Первый ajax просто аутентификация. Шлем пароль и логин.
Если не прошла, то выходить и второй запрос не слать.
Код 200 это ошибка так как приходит форма логина. Это мы что то не так ввели.
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917374
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
Если по старинке, то это Вавилонская башня коллбэков. Так мне не надо.
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917379
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Первый ajax просто аутентификация. Шлем пароль и логин.
Если не прошла, то выходить и второй запрос не слать.
Код 200 это ошибка так как приходит форма логина. Это мы что то не так ввели.
это защита от пербора?
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917384
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя
PetroNotC Sharp
Первый ajax просто аутентификация. Шлем пароль и логин.
Если не прошла, то выходить и второй запрос не слать.
Код 200 это ошибка так как приходит форма логина. Это мы что то не так ввели.
это защита от пербора?
нет. Штатная работа. При входе юзверем на любой защищенный урл если не авторизован раньше вылазит логин форма.
Не капча а форма входа!
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917387
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
Тебе приходит ответ на POST.
Если надо перебирай и брутфорсь дальше. К топику не относится.
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917395
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp,
200 это не ошибка, это нормальный ответ. это ты трактуешь ошибкой.
надо не 200 анализировать, содержимое данных.\если там есть что-то содержащее форму логина - то выходить
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917396
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
Давай другой пример. А то ты зациклился.
Собираю класс из двух запросов.
Если первый код 200 то не нужно отправлять второй.
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917398
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя
надо не 200 анализировать, содержимое данных.\если там есть что-то содержащее форму логина - то выходить
БЛИН, КАК ВЫХОДИТЬ?
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917400
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Если первый код 200 то не нужно отправлять второй.
при нормальной работе код 200 будет всегда
https://ru.wikipedia.org/wiki/Список_кодов_состояния_HTTP
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917401
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
БЛИН, КАК ВЫХОДИТЬ?
вопрос куда выходить?
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917403
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp,

whatsapp?
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917404
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя
PetroNotC Sharp
БЛИН, КАК ВЫХОДИТЬ?
вопрос куда выходить?
кончай тупить
$.ajax()
$.ajax()
Как второй не запускать если в первом форма логина пришла?
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917407
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя
PetroNotC Sharp,

whatsapp?

На работе. Позже смогу.
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917412
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Как второй не запускать если в первом форма логина пришла?
пришёл ответ- проанализировал
если ответ - форма логина - ajax2 не отправляешь
если ответ - не форма логина - ajax2 отправляешь
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917413
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
    #39917415
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя
PetroNotC Sharp
Как второй не запускать если в первом форма логина пришла?
пришёл ответ- проанализировал
если ответ - форма логина - ajax2 не отправляешь
если ответ - не форма логина - ajax2 отправляешь
if где ставить. Код схематично напиши.
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917427
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
       if(req.status == 200) {

                 // если статус 200 (ОК) 

              if req.responseText === форма логина 
                     {

                   }
else
                  {

                  };

            }




без всяких промисов
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917429
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
Типа ты меня удивил вавилонской башней.
Еще скажи счетчик вызовов повесить.
До свидания.
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917441
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Типа ты меня удивил вавилонской башней.
Еще скажи счетчик вызовов повесить.
До свидания.
тогда я тебя не понял.
в чём проблема?
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917452
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
Что не понял. Через Promise надо мне.
У меня карта и по 12 запросов слоев может быть.
Пока.
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917548
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp,

долго думал, но так и не смог понять для чего промисы тебе...
чем они могут помочь?
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917557
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
Поиск - Вавилонская башня
Код: sql
1.
2.
3.
4.
5.
6.
7.
doSomething(function(result) {
  doSomethingElse(result, function(newResult) {
    doThirdThing(newResult, function(finalResult) {
      console.log('Итоговый результат: ' + finalResult);
    }, failureCallback);
  }, failureCallback);
}, failureCallback);
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917558
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp,

да пофиг на вавилонскую башню.
вопрос в том что промисы тут не помогут.
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917565
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
А если придет какой студент и сделает?
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917566
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
А если придет какой студент и сделает?
я изучу его опыт.
ты заинтриговал меня .давай подробностей больше - попробую, ради спортивного интереса
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917571
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
Угу. Тебя уговаривать три дня надо как девочку).
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917572
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Угу. Тебя уговаривать три дня надо как девочку).
считай что уговорил
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917574
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917580
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro, я не угадал что ли?
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917582
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил
спасибо. Я в шоке. Тут либа нужна? Я думал что уже все есть в самом языке.
Буду думать.
Спасибо.
Alexander A. Sak,
Не понял тебя.
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917583
Alexander A. Sak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скопировать не сложно.
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
    #39917584
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp,

это тебе не подойдёт. там отслеживается "не нормальное поведение"
у тебя же всё штатное с точки зрения логики js и протокола ajax
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917622
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Если по старинке, то это Вавилонская башня коллбэков. Так мне не надо.

await не работает?
https://stackoverflow.com/questions/27612372/how-to-await-the-ajax-request
Код: javascript
1.
2.
3.
4.
5.
6.
async function f() {
    var res = await getData(url);
    //do something return or throw
    var res2 = await getData(url);
}
//getData возвращает промис
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917624
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
https://jsfiddle.net/3xmuz1Lo/6/
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
function getData(ajaxurl, data) {
  return $.ajax({
    url: ajaxurl,
    type: 'POST',
    json : JSON.stringify(data)
  });
};

async function test() {
  try {
    const res = await getData("/echo/json/",{a:1})
    console.log("res:",res)
  } catch(err) {
    console.log("err:",err);
  }
}
test();
//output:
//res: {} (because api fuckup)
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917632
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexander A. Sak,
crutchmaster,
Спс. Счас попробую. Отпишусь.
вадя,
Да фиг знает..Я же джун в js.
Может оно анализирует статус xhr.status а он у меня 200 значит что прерываемся.
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917654
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Может оно анализирует статус xhr.status а он у меня 200 значит что прерываемся.
фишка ajax в том , что в на запрос, клиент должен получить ответ, а сервер обязан дать ответ.
в твоём случае статус 200 говорит, что сервер ответил, и ответ с точки зрения протокола правильный.
статус 200 буде в любом случае, ввёл ты логин / пароль правильные или нет. только ответ буде разный -форма логина, если логин/пароль не верный или что-то другое , если логин /пароль верные
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917663
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
Если сераер пускает то 302 код идет. Переход с урла логина на урл где работаем.
Дак ты делаешь пример или занят пока?
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917682
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp,

https://jsfiddle.net/7poz48ka/3/

Без jquery, чтобы совсем было понятно:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
var log = console.log
function getData(ajaxurl, data) {
//создаём объект промис, в агрументе конструктора функция где будет колбечный код. 
//У функции два аргумента - первый - функция, когда всё хорошо и второй - тоже функция
//Вот их и дёргаем когда это уместно прямо из этих вонючих колбеков
//После создания промиса функция сразу отрабатывает и возвращает промис, по-нашему - обещание.
  return new Promise(function(ok, fail) {
    var xhttp = new XMLHttpRequest();
    xhttp.onreadystatechange = function() {
      if (this.readyState == 4 && this.status == 200) {
        ok(this);
        //this - это наш XMLHttpRequest xhttp
      } 
      if (this.status == 400) {
        fail(this);
      }
    };
    //Вызов ajax, ничего интересного.
    xhttp.open("POST", ajaxurl, true);
    xhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
    xhttp.send("json="+JSON.stringify(data));
  });
}
//await работает только в async функции. Async функция всегда возвращает обещание, 
//прям как какой-нибудь мэр, губернатор или депутат.
async function test() {
  try {
//Раз ждать результата здесь и сейчас никто не будет, можно сделать await 
//и ждать обещания от других функций. По сути мы разворачиваем колбек 
//в нормальный код, но колбечным js от этого быть не перестаёт. 
//Просто такой костыль, чтобы не делать портянки из колбеков 
//или .this(()=>{alala}).this(()=>{elele}).catch(nop) и пр. дерьмишко.
    const res = await getData("/echo/json/", {a: 1})
    log("res:", res.response);
  } catch (err) {
//если промис зафейлится будет сделан throw
    log("err:", err);
  }
}

test();
//Вызова test никто не ждёт. Он вернёт промис и код будет выполняться дальше. По-моему глобальная функция не асинхронная

//PS. Да, код вызова ajax написан через жопу, так делать не надо.
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917683
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Дак ты делаешь пример или занят пока?
я жду подробностей, про 302 наконец узнал...
что приходит при статусе 302?
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917698
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя
PetroNotC Sharp
Дак ты делаешь пример или занят пока?
я жду подробностей, про 302 наконец узнал...
что приходит при статусе 302?
ты мастер не по теме спрашивать.
Я могу только факультативно так как к вопросу не имеет отношение. В вопросе стоит как второй запрос запустить по резулату первого.
На 302 идет урл куда пустит сервер для работы. Прихожая называется.
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917699
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster,
В том и дело что нужен $.ajax
Но все равнр посмотрю. Спс.
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917709
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster,
У тебя xhttp.send( один раз?
А нужно в примере два раза.
Первый это аутентификация и второй рабочий в зависимости от первого
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917711
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрался до компа, счас все посмотрю.
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917717
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp,

тогда тебе надо https://learn.javascript.ru/promise-chaining
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917720
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp,

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
xhttp.onreadystatechange = function() {
      if (this.readyState == 4 && this.status == 200) {
        fail(this);
        //this - это наш XMLHttpRequest xhttp
      } 
      if (this.status == 302) {
        ok(this);
      }
    };
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39917746
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя
PetroNotC Sharp,

Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
xhttp.onreadystatechange = function() {
      if (this.readyState == 4 && this.status == 200) {
        fail(this);
        //this - это наш XMLHttpRequest xhttp
      } 
      if (this.status == 302) {
        ok(this);
      }
    };


У меня так и было, только this не передавал.
Ты проверь, при fail вызывается log1 функция или нет?
Я чуть позже с this проверю.
...
Рейтинг: 0 / 0
Подскажите по 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
Подскажите по Promise
    #39918196
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Понимаешь, что для меня лично не логично.
В шарпе операторы async/await служат ДЛЯ ПРЕОБРАЗОВАНИЯ ОБЫЧНОГО СИНХРОННОГО КОДА В АСИНХРОННЫЙ.

Тут всё пляшет от того, что js однопоточный, поэтому все совсем не так, как у всех.
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39918199
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster,

в каком плане?
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39918200
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA
в каком плане?

В каком плане что? Жс однопоточный?
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39918209
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster,

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

Вот человек говорит, что в C# async/await делает асинхронный код из синхронного, а я говорю, что js наоборот, пытается сделать вид, что код синхронный и спрятать колбек под ковёр.
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39918213
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster,

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

Вот человек говорит, что в C# async/await делает асинхронный код из синхронного, а я говорю, что js наоборот, пытается сделать вид, что код синхронный и спрятать колбек под ковёр.
да. В конкретно нашем примере топика.
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39918221
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster,
JS отличается и от дельфи и от java и от шарпа....
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39918223
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster,
Если ты jav'ист то js как Akka.
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39918239
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
crutchmaster,
Если ты jav'ист то js как Akka.

А что в js является актором?
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39918240
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster

https://stackoverflow.com/questions/27612372/how-to-await-the-ajax-request
Код: javascript
1.
2.
3.
4.
5.
6.
async function f() {
    var res = await getData(url);
    //do something return or throw
    var res2 = await getData(url);
}
//getData возвращает промис


В C# это принципиально иначе будет выглядеть и работать?
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39918252
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

В C# есть эвент луп на уровне языка?
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39918253
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA
PetroNotC Sharp
crutchmaster,
Если ты jav'ист то js как Akka.

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

А что в js является актором?
ты не java прогер. Сравнение я давал для него.

Понятно, Петя не в курсе, что акторы и Акка есть и в .Net :)

Так что в js является актором?
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39918270
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster
skyANA,

В C# есть эвент луп на уровне языка?

Есть стандартный цикл обработки сообщений приложения в текущем потоке.
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39918274
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,
Во первых я вам не Петя. Во вторых с вами никто не разговаривал, и я вас ни о чем не спрашивал. Только отвечал на вопросы от вас.
Вижу зря отвечал. Идите с миром.
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39918282
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster,

можешь у него спросить, что по его мнению в js является актором?
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39918283
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
skyANA,

Шо ты докопался до этих акторов?
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39918299
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster
skyANA,

Шо ты докопался до этих акторов?

Любопытно, почему если ты jav'ист, то js как Akka.
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39918392
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster
Вот человек говорит, что в C# async/await делает асинхронный код из синхронного, а я говорю, что js наоборот, пытается сделать вид, что код синхронный и спрятать колбек под ковёр.


пилять
...
Рейтинг: 0 / 0
Подскажите по Promise
    #39918931
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt
пилять

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


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