Troy Bryant Ответов: 1

Доступ к данным из promise


Привет -

Думал, что я немного понимаю, как работают обещания javascript, но думаю, что нет. Я пытаюсь получить доступ к данным, которые возвращает мой запрос. Когда я проверяю сеть, я ясно вижу, что запрос был сделан, и данные находятся в ответе. Но моя простая консоль.журнал не имеет данных?

function getData(){
  return new Promise(function(resolve, reject){
   window.api.getTimesByCompanyAndLocation(1, 5, function(error, data, response){
    if(error){
     reject({error, response});
    }
    else{
     resolve(response);
    }
   }
 }
}


Что я уже пробовал:


 getData().then((res) => {
  console.log(res);
})

1 Ответов

Рейтинг:
0

njammy

Я собрал для вас рабочий пример в следующей скрипке

пример обещания - JSFiddle - Code Playground[^]

Разметка:

<input type="text" placeholder="your favourite color?" />

<button type="button" onclick="getData()">
  Call Promise
</button>

<span id='PromiseStatus' />


JS/JQuery:
var $promiseStatus = $('#PromiseStatus');

function generateMessage(color) {
  return 'your favourite color is ' + color;
}

function getData() {
  $promiseStatus.text('Please wait...');
  var colorPromise = new Promise(function(resolve, reject) {
    var message = generateMessage($('input[type="text"]').val());

    // simulate call to api
    setTimeout(function() {
      resolve(message);
    }, 2000);
  });

  colorPromise.then(
    // the following function gets passed into the promise 'resolve' fn
    // callback. response param can be any object, e.g. api result data
    function(response) {
      console.log(response);
      $promiseStatus.text(response);
    });
}