私は現在、ウェブサイトのスロットマシンエフェクトに取り組んでいます。私は、setTimeout()で何回も呼び出す関数を使用します。私は減速する効果が必要なので、単純なループではなくsetTimeout()を使用します。これはミリ秒が便利な場所です。この後、私は別のパラメータで同じ機能を起動したい。だから私は最初の "ループ"が完了したときを知る必要があります。私はその約束を試みた。成功なし。javascript約束setTimeout
問題を単純化するために、以下のコードが.then()メソッドを起動しない理由を誰かに教えてください。私はこのすべてのプログラミングには新しく、これは私の最初の質問です。私はここで明らかに間違いがないことを願っています。
あなたは単純にそうように、再帰呼び出しの後に約束を解決する必要がありfunction countDown(i) {
return promise = new Promise((resolve, reject) => {
console.log(i--);
if (i > 0) {
setTimeout(() => {
countDown(i);
}, 1000);
} else {
resolve('counter finished:');
}
});
}
let counter = countDown(10);
counter.then((msg) => {
console.log(msg);
});
あなたは10個の約束を作成し、そして唯一の解決れることは決してありません拳1に待っているので。 – Keith
最初の質問については、かなり書かれていると思います。ようこそ! 問題については、キースは正しいです。 –
小さなヒント:ちょうど10秒で終了することはありません;状況によっては20以上になることもあります) – GottZ