私は出力を期待していました:A、B、Cしかし、それは動作しません。関数handleClick(element)を変更できない場合、どのようにしてすべてのコードが順番に実行され、A、B、Cが期待どおりに出力されるように他の関数を変更できますか?JavaScriptを順番に実行する方法は?
async function handleClick(element) {
setTimeout(function(){
console.log(`Click on Element_${element}`);
}
, Math.random(5)*1000);
}
async function clickLetter(letter) {
await handleClick(letter);
}
async function clickGroup(group) {
await handleClick(group);
}
const letters = ['A', 'B', 'C'];
function clickLetters(letters, fn) {
let index = 0;
return new Promise(function(resolve, reject) {
function next() {
if (index < letters.length) {
fn(letters[index++]).then(next, reject);
} else {
resolve();
}
}
next();
});
}
clickLetters(letters, clickLetter);
あなたは、あなたの答えを得た 'async'ライブラリ、https://caolan.github.io/async/docs.html#eachSeries – Cristy
を使用することができますか? –
@Cristyいいえ、できません。約束は役に立たない。 – Bergi