Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   promises. почему так запилено? (https://javascript.ru/forum/misc/57560-promises-pochemu-tak-zapileno.html)

javaQest 10.08.2015 20:48

Цитата:

Сообщение от Erolast
УЖЕ написан за тебя

Это скорей минус, а не плюс. свой код я знаю, и могу гибко его подстроить под свои нужды. имею представленииие о перформансе и тп. тем более, 99% этих либ написаны мартышками, меня блевать тянет с их исходников.

javaQest 10.08.2015 20:54

Цитата:

Сообщение от Erolast
Дело в том, что catch - это ключевое слово

Лишнее подтверждение маразматичности этих пейсателей кода. Что нельзя было другое слово придумать? onError, например. Тем более, семантически, там catch'ем и не пахнет.

KosBeg 10.08.2015 21:17

Цитата:

Сообщение от Erolast
Во-вторых, зачем указывать кодировку UTF8 в content-type? Она же и так дефолтная.

пример нашел на хабре...
Цитата:

Сообщение от Erolast
Вобще, загляни на https://github.com/github/fetch#usage, там весьма хорошая памятка

ну так бля, я от туда пришел)
я юзаю именно этот полифил
Цитата:

Сообщение от Erolast
Наверное, ты имел в виду "вместо интерфейса XMLHttpRequest"?)

ну да) как-то так)
Цитата:

Сообщение от Erolast
не проще ли отправлять JSON?

не проще, я просто не могу понять как его принять на сервере)
моя тупость зашкаливает)

KosBeg 10.08.2015 21:17

Цитата:

Сообщение от javaQest
Это скорей минус, а не плюс. свой код я знаю, и могу гибко его подстроить под свои нужды. имею представленииие о перформансе и тп. тем более, 99% этих либ написаны мартышками, меня блевать тянет с их исходников.

ну не скажи)
лично я считаю что даный полифил не хуже своего кода, над ним работаю ребята в 100 раз круче тебя, и они то знают толк в извращениях)

javaQest 10.08.2015 21:35

Цитата:

Сообщение от KosBeg
я просто не могу понять как его принять на сервере)

для сервера это обычная строка. есть специальные парсеры, для твоего языка, наверняка тоже есть. принимай, обрабатывай. Можешь и вручную распарсить.

С другой стороны, если он тебе не нужен, можешь не заморачиваться. Абсолютно по*ю каким форматом сервер обменивается с клиентом, главное, чтобы тебе было удобно. Просто json -- это стандарт. Если ты сам себе хозяин, можешь положить на стандарты.

KosBeg 11.08.2015 13:10

Цитата:

Сообщение от javaQest
есть специальные парсеры, для твоего языка, наверняка тоже есть. принимай, обрабатывай. Можешь и вручную распарсить.

да я в курсе - json_encode($data), json_decode($data)
Цитата:

Сообщение от javaQest
для сервера это обычная строка.

я не могу принять json на сервере так как массив $_POST пустой)

я не знаю как принять его)
хотя например можно так
let result = fetch('server.php?cool=javascript', {  
  method: 'post',
  headers: {
      "Content-type": "application/x-www-form-urlencoded"  
  },
  body: 'param=' + JSON.stringify({
    javascript: 'cool',
    es_modern: '6 aka 2015',
  })
})

 result.then(function(response) {
    return response.text()
 }).then(function(text) {
    console.log(text)
 })
}


KosBeg 11.08.2015 13:16

Общем как меня не учи - я делаю так)
function getContent(timestamp) {

  toQueryString = function(data) {
    var query = '',
      i, push = function(key, value) {
        query += encodeURIComponent(key) + '=' + encodeURIComponent(value) + '&';
      },
      key, value;
    for (key in data) {
      if (!Object.hasOwnProperty.call(data, key)) {
        continue;
      }
      value = data[key];
      if ((typeof(data) === "object") && (data instanceof Array)) {
        for (i = 0; i < value.length; i++) {
          push(key, value[i]);
        };
      } else {
        push(key, data[key]);
      };
    };
    return query.replace(/&$/, '').replace(/%20/g, '+');
  };

  var queryString = {
    'timestamp': timestamp
  };

  var result = fetch('server.php', {
    method: 'post',
    headers: {
      "Content-type": "application/x-www-form-urlencoded"
    },
    body: toQueryString(queryString)
  })

  result.then(function(response) {
    return response.json()
  }).then(function(text) {
    document.querySelector('#response').innerHTML = text.data_from_file;
    getContent(text.timestamp);
  })['catch'](function(ex) {
    getContent(timestamp);
  })
}

javaQest 11.08.2015 13:23

Цитата:

Сообщение от KosBeg
json_encode($data), json_decode($data)

это вряд ли парсеры, парсер -- это библиотека для разбора. То что ты нашел, это скорей всего енкодер и декодер.

Erolast 11.08.2015 17:19

Цитата:

не проще, я просто не могу понять как его принять на сервере)
https://www.google.com/search?q=php+recieve+json
$data = json_decode(file_get_contents('php://input'), true);


Цитата:

Мне честно говоря, читать твой код -- серпом по яйцам. Переписал бы ты его традиционным синтаксисом.
Ну, вообще-то, то, что ты не можешь прочитать вполне валидный и стандартный код, уже само по себе означает, что языка ты не знаешь. Ну да ладно, пойду на встречу - http://javascript.ru/forum/showthread.php?p=383662.

KosBeg 11.08.2015 17:33

Цитата:

Сообщение от Erolast
https://www.google.com/search?q=php+receive+json
$data = json_decode(file_get_contents('php://input'), true);

спасибо, потом попробую)


Часовой пояс GMT +3, время: 13:53.