1秒ごとに実行をさせたいのですがsleep関数が効いていないようで1秒待つことなく実行されてしまいます。どうやら最初の1秒だけ待ってその後まとめて実行されているようです。ループ毎に1秒待つようにするにはどのようにすれば良いでしょうか?
以下コードです。
tsx
1 function sleep(waitSec: any) { 2 return new Promise(function (resolve: any) { 3 4 setTimeout(function () { resolve() }, waitSec); 5 6 }); 7 } 8 9 useEffect(() => { 10 posts!.forEach((post: any) => { 11 sleep(1000) 12 .then(() => { 13 console.log("1秒ごとに表示されるはず") 14 15 getPost(post.id) 16 .then((res) => { 17 18 allPosts.push(res.post) 19 20 }) 21 .catch(res => console.log("失敗")) 22 }) 23 }) 24 }, [])
ご教示いただければ幸いです。よろしくお願いいたします。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。