Неожиданное обещание вернулось в React Native - PullRequest
0 голосов
/ 24 января 2019

Я только начинаю работать с обещаниями в React и не могу объяснить, почему я возвращаю обещание в функции, а не в массиве, который мне нужен.

Код выглядит следующим образом:

async function pullTweets () {  
  let twitterRest = new TwitterRest(); //create a new instance of TwitterRest Class   
  var twatts = await twitterRest.pullTimeLine('google'); //pull the Google TimeLine
  console.log(twatts);
  return twatts;
}

let twitts = pullTweets();
console.log(twitts);

console.log (twatts); возвращает правильный массив твитов; однако console.log (twitts) возвращает обещание.

Любое объяснение будет с благодарностью.

Спасибо

1 Ответ

0 голосов
/ 24 января 2019

Вам нужно дождаться, пока pullTweets(), которая является асинхронной функцией (которая также возвращает Promise), завершит выполнение.

Это можно сделать с помощью ключевого слова await перед pullTweets():

let twitts = await pullTweets();
console.log(twitts);

Код, который вы написали, эквивалентен этому (используя только обещания):

function pullTweets () {  
  let twitterRest = new TwitterRest();
  return twitterRest.pullTimeLine('google').then((twatt) => {
    // This logs the array since the promise has resolved successfully
    console.log(twatt)
    return twatt
  })
}

let twitts = pullTweets();

// This logs a pending promise since the promise has not finished resolving
console.log(twitts);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...