この関数から値を取得することができません

リティックAnchaliya:

フェッチは罰金を動作しますが、「タイトル」配列は、フェッチデータから値を押した後、その中に値がありません。

    function getdata(){
    const title = [];
    const body = [];
     const url = 'https://jsonplaceholder.typicode.com/posts';
      fetch(url)
     .then(response => response.json())
     .then(data => {
        //  console.log(data)                        /*This works just fine*/
         data.forEach(posts => {
            title.push(posts.title)
            body.push(posts.body)
            })
     })
    //  const onlytentitle = title.slice(0,9);     
    //  return onlytentitle;
        return title;     
}
const titled = getdata();
console.log(titled);
Sohail:

fetch 非同期機能であり、あなたは、あなたの関数がタイトルを返しますので、フェッチする前に、フェッチ要求の完全な外部からタイトルを戻ってきています。

これを試して。

function getdata() {
  const title = [];
  const body = [];
  const url = "https://jsonplaceholder.typicode.com/posts";
  return fetch(url)
    .then(response => response.json())
    .then(data => {
      data.forEach(posts => {
        title.push(posts.title);
        body.push(posts.body);
      });
      return title;
    });

}
(async function() {
  const titled = await getdata();
  console.log(titled);
})();


とともに async/await

async function getdata() {
  const title = [];
  const body = [];
  const url = "https://jsonplaceholder.typicode.com/posts";
  let response = await fetch(url);
  let data = await response.json();
  data.forEach(posts => {
    title.push(posts.title);
    body.push(posts.body);
  });
  return title;
}
(async function() {
  const titled = await getdata();
  console.log(titled);
})();

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=32183&siteId=1