• Как понять Promise?

    @sergeystepanov1988
    Вот более жизненный пример, может так будет понятнее:

    function fetch(url) {
      return new Promise(function(resolve, reject) {
        $.getJSON(url, function(response) {
          if(response){
            resolve(response); 
          } else {
            reject(new Error('No response'));
          }
        });
      });
    }
    
    fetch('http://jsonplaceholder.typicode.com/users').then(function(users){
      var output = '';
      users.forEach(function(user) {
        output += '<p>' + user.name + '</p>';
      });
      $('body').html(output);
    }).catch(function(err) {
      console.trace(err.message);
    });
    JSBIN
    Ответ написан
    2 комментария
  • Как понять Promise?

    maxfarseer
    @maxfarseer
    https://maxpfrontend.ru, обучаю реакту и компании
    Что есть "привязчик функции"?
    Вы на resolve и reject должны указать именно функции. Так как таким образом в аргументах у них будут необходимые данные. А таймер - хороший вариант "сфабриковать" асинхронное действие.

    Материал выбран хороший, прочитайте, поиграйтесь с примерами, потом посмотрите эту статью с хабра.

    Промисы нужно пощупать на практике, причем обязательно попробовать обработать ошибки:
    а) когда нет интернета
    б) когда ваше api ответило не "200"

    Затем попробуйте выполнить цепочки промисов (последовательно, параллельно).
    Смотрите в дебаггере по шагам, что за чем идет.

    Таким образом рано или поздно точно получится разобраться) Я сам, почитал Кантора уже после того, как "потыкался" с промис-библиотеками. Поэтому не могу точно вспомнить, откуда начал, но его статья хорошая на мой взгляд.
    Ответ написан
    1 комментарий