Size: a a a

JavaScript Noobs — сообщество новичков

2020 December 08

a

allpeg in JavaScript Noobs — сообщество новичков
у вас какая-то хрень с кодом модалки, он куда-то пропал
источник

Ꮆㄖ尺ᗪ乂1 in JavaScript Noobs — сообщество новичков
allpeg
ошибок в консоли нет?
нет
источник

a

allpeg in JavaScript Noobs — сообщество новичков
есть где-то в паблике эта страница, чтобы её увидеть?
источник

a

allpeg in JavaScript Noobs — сообщество новичков
Max Tymoshyn
Ребят, привет
У меня есть функция, которая делает ajax запрос и результат ajax должен положится в переменную

Я себе представлял это так
let dataset = getFunction(address);

но как я понимаю так не работает потому что getFunction пока делает ajax - еще не определена.

Внутри
`function getFunction(address) {

   let res;
   let data = {
     action: 'bridge',
     address: address
   }

   $.ajax({
       url: ajaxurl,
       type: 'POST',
       data: data,
       dataType : 'json'})
       .done(function(data) {
           res = {
               success: true
           }
       })
       .fail(function(xhr, ajaxOptions, thrownError){
           res = {
               success: false
           }
       })

   return res;
}`

Как это вообще грамотно сделать?
Вы слышали вообще о коллбэках?
источник

Ꮆㄖ尺ᗪ乂1 in JavaScript Noobs — сообщество новичков
allpeg
есть где-то в паблике эта страница, чтобы её увидеть?
https://8f69c889c13d.ngrok.io

login:admin
pass:admin
источник

☬ Sᴀʏᴅᴜʟʟᴏ ツ... in JavaScript Noobs — сообщество новичков
allpeg
Вы слышали вообще о коллбэках?
Это миф 🌝
источник

a

allpeg in JavaScript Noobs — сообщество новичков
Max Tymoshyn
Ребят, привет
У меня есть функция, которая делает ajax запрос и результат ajax должен положится в переменную

Я себе представлял это так
let dataset = getFunction(address);

но как я понимаю так не работает потому что getFunction пока делает ajax - еще не определена.

Внутри
`function getFunction(address) {

   let res;
   let data = {
     action: 'bridge',
     address: address
   }

   $.ajax({
       url: ajaxurl,
       type: 'POST',
       data: data,
       dataType : 'json'})
       .done(function(data) {
           res = {
               success: true
           }
       })
       .fail(function(xhr, ajaxOptions, thrownError){
           res = {
               success: false
           }
       })

   return res;
}`

Как это вообще грамотно сделать?
вы НЕ можете вернуть из функции результат запроса, так как на момент возврата функцией значения запрос ещё даже не отправился
источник

Ꮆㄖ尺ᗪ乂1 in JavaScript Noobs — сообщество новичков
кнопка "Рассылка" синего цвета
источник

MT

Max Tymoshyn in JavaScript Noobs — сообщество новичков
allpeg
вы НЕ можете вернуть из функции результат запроса, так как на момент возврата функцией значения запрос ещё даже не отправился
это я понимаю, но не понимаю как сделать этот самый колбэк, его в результате выполнения делать?

Я представляю что можно переменную заранее создать и после выполнения ajax просто ей присвоить значения. Но как это сделать не задавав заранее переменную. Нужно чтобы в коде можно было создать любую переменную и присвоить ей значение которое с ajax пришло
источник

a

allpeg in JavaScript Noobs — сообщество новичков
Max Tymoshyn
Ребят, привет
У меня есть функция, которая делает ajax запрос и результат ajax должен положится в переменную

Я себе представлял это так
let dataset = getFunction(address);

но как я понимаю так не работает потому что getFunction пока делает ajax - еще не определена.

Внутри
`function getFunction(address) {

   let res;
   let data = {
     action: 'bridge',
     address: address
   }

   $.ajax({
       url: ajaxurl,
       type: 'POST',
       data: data,
       dataType : 'json'})
       .done(function(data) {
           res = {
               success: true
           }
       })
       .fail(function(xhr, ajaxOptions, thrownError){
           res = {
               success: false
           }
       })

   return res;
}`

Как это вообще грамотно сделать?
а вообще почитайте книгу специально для Вас:
Вы не знаете JS. Асинхронная обработка и оптимизация
Симпсон К. (2019)
ссылку не даю т.к. в чатах запрещено пиратство, то есть, администрация чатов как правило против того, чтобы публиковать ссылки на телеграм чат "Библиотека программиста" где эту книгу можно скачать, и я Вас отговариваю искать этот чат и скачивать эту книгу, коенчно же её надо купить, я против пиратства.
источник

a

allpeg in JavaScript Noobs — сообщество новичков
Max Tymoshyn
это я понимаю, но не понимаю как сделать этот самый колбэк, его в результате выполнения делать?

Я представляю что можно переменную заранее создать и после выполнения ajax просто ей присвоить значения. Но как это сделать не задавав заранее переменную. Нужно чтобы в коде можно было создать любую переменную и присвоить ей значение которое с ajax пришло
Нужно чтобы в коде можно было создать любую переменную и присвоить ей значение которое с ajax пришло
Так можно
НО
на момент возврата из функции этой переменной ещё ничего не будет задано.
источник

Ꮆㄖ尺ᗪ乂1 in JavaScript Noobs — сообщество новичков
@allpeg глянул сайт?
источник

MT

Max Tymoshyn in JavaScript Noobs — сообщество новичков
allpeg
а вообще почитайте книгу специально для Вас:
Вы не знаете JS. Асинхронная обработка и оптимизация
Симпсон К. (2019)
ссылку не даю т.к. в чатах запрещено пиратство, то есть, администрация чатов как правило против того, чтобы публиковать ссылки на телеграм чат "Библиотека программиста" где эту книгу можно скачать, и я Вас отговариваю искать этот чат и скачивать эту книгу, коенчно же её надо купить, я против пиратства.
ладно, в теле .done просто следующую функцию использую пока что, хотелось как-то разделить взятие данных и их обработку последующую, мало ли нужно будет в другую функцию эти данные запихнуть -_-
источник

a

allpeg in JavaScript Noobs — сообщество новичков
Max Tymoshyn
ладно, в теле .done просто следующую функцию использую пока что, хотелось как-то разделить взятие данных и их обработку последующую, мало ли нужно будет в другую функцию эти данные запихнуть -_-
У Вас два варианта:
1) делать коллбэк:
Вы хотите чтобы было так:
function getFunction(address) { ... }
let foo = getFunction(123);
alert(foo); // пример кода потребляющего foo
А надо так:
function getFunction(address, callback) { ... }
getFunction(123,function(foo){
   alert(foo); // пример кода потребляющего foo
});
2) использовать ES6 async/await/promise, но их надо учить
источник

a

allpeg in JavaScript Noobs — сообщество новичков
Ꮆㄖ尺ᗪ乂1
@allpeg глянул сайт?
секунду, допишу код)
источник

MT

Max Tymoshyn in JavaScript Noobs — сообщество новичков
allpeg
У Вас два варианта:
1) делать коллбэк:
Вы хотите чтобы было так:
function getFunction(address) { ... }
let foo = getFunction(123);
alert(foo); // пример кода потребляющего foo
А надо так:
function getFunction(address, callback) { ... }
getFunction(123,function(foo){
   alert(foo); // пример кода потребляющего foo
});
2) использовать ES6 async/await/promise, но их надо учить
теперь got it 🌝👌

приятнее подружится с ES6, но это уже на праздниках можно будет что-то поучить 🤤

где тут плюсики в карму ставить? 😄
источник

a

allpeg in JavaScript Noobs — сообщество новичков
Max Tymoshyn
теперь got it 🌝👌

приятнее подружится с ES6, но это уже на праздниках можно будет что-то поучить 🤤

где тут плюсики в карму ставить? 😄
function getFunction(address, callback) {
   let res;
   let data = {
       action: 'bridge',
       address: address
   };
   $.ajax({
       url: ajaxurl,
       type: 'POST',
       data: data,
       dataType: 'json'
   })
   .done(function(otherData) { // должны быть разные имена чтобы не путаться!
       res = {
           someData: otherData,
           success: true
       };
       callback(res); // вызов callback!
   })
   .fail(function(xhr, ajaxOptions, thrownError) {
       res = {
           success: false
       };
       callback(res); // вызов callback!
   });
   // без return!
}
пример потребления:
getFunction('что-то',function(myRes){
   // myRes доступна тут
   if(myRes.success){
       console.log('ajax-запрос вернул:', myRes.someData);
   } else {
       alert('ашипка');
   }
});
// myRes НЕ доступна тут
источник

a

allpeg in JavaScript Noobs — сообщество новичков
где тут плюсики в карму ставить?
- Оплата кармой
- может, картой?
- нет, кармой убегает не заплатив
источник

a

allpeg in JavaScript Noobs — сообщество новичков
Ꮆㄖ尺ᗪ乂1
@allpeg глянул сайт?
При нажатии "Рассылка" у меня открывается модалка) может из-за моих плагинов, хз, ща попробую без них
источник

Ꮆㄖ尺ᗪ乂1 in JavaScript Noobs — сообщество новичков
втф?
источник