Как понять Promise?
Что есть "привязчик функции"?
Вы на resolve и reject должны указать именно функции. Так как таким образом в аргументах у них будут необходимые данные. А таймер - хороший вариант "сфабриковать" асинхронное действие.
Материал выбран хороший, прочитайте, поиграйтесь с примерами, потом посмотрите эту статью с хабра.
Промисы нужно пощупать на практике, причем обязательно попробовать обработать ошибки:
а) когда нет интернета
б) когда ваше api ответило не "200"
Затем попробуйте выполнить цепочки промисов (последовательно, параллельно).
Смотрите в дебаггере по шагам, что за чем идет. 
Таким образом рано или поздно точно получится разобраться) Я сам, почитал Кантора уже после того, как "потыкался" с промис-библиотеками. Поэтому не могу точно вспомнить, откуда начал, но его статья хорошая на мой взгляд.
Вот более жизненный пример, может так будет понятнее: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