前提・実現したいこと
ご教授お願いいたします。
javascriptのfetch()にてデータ取得後、そのデータを使用してクイズを表示するアプリを作成したいのですが、
非同期通信の終了以前にfunctionを実施してしまいます。
asynchronousFuncを実行した後にquestionPage関数を実施したいと思っております。
ソースコードが作り途中なためお見苦しいコードになっております、ご了承ください。。。
該当のソースコード
javascript
1 2const startBtn = document.getElementById('start'); 3let questionData; 4 5startBtn.addEventListener('click', () => { 6 waitingPage(); 7 asynchronousFunc().then(questionPage); 8 9}); 10 11const asynchronousFunc = () => { 12 return new Promise((resolve, reject) => { 13 fetch('https://opentdb.com/api.php?amount=10') 14 .then(response => response.json()) 15 .then(data => { 16 questionData = data 17 }) 18 resolve(); 19 }); 20} 21 22const waitingPage = () => { 23 const header = document.getElementById('header'); 24 const content = document.getElementById('content'); 25 header.innerText = '取得中'; 26 content.innerText = '少々お待ちください'; 27} 28 29const questionPage = () => { 30 const header = document.getElementById('header'); 31 const content = document.getElementById('content'); 32 header.innerText = '問題1'; 33}
試したこと
promiseやasync,awaitなど一通り勉強して自分なりにコード書いてみましたがどれもうまくいきません。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/13 03:50