下面编写的javascript代码异步运行,并以以下格式产生输出。
const check = () => {
const arr = [3,2,1]
arr.forEach(async (val) => {
await setTimeout(() => console.log(val), val*1000)
})
}
check();
实际输出为:
1
2
3
但是我想要以以下格式输出:
3
2
1
答案 0 :(得分:0)
Recusrion可以解决问题。
const check = () => {
const arr = [3,2,1]
var i = 0, val;
const do_the_thing = ()=>{
setTimeout(()=>{
val = arr[i];
i++;
console.log(val);
if(arr[i]) do_the_thing();
}, val*1000)
};
do_the_thing();
}
check();