我已经开始学习JavaScript,并试图弄清楚如何实现这一目标?
console.log(1);
setTimeout(() => {
console.log(2);
}, 2000);
console.log(3);
我们知道输出为1,3,2
如何按给定的顺序获取输出。
示例:先打印1,然后等待2秒钟,然后再打印2,再打印3。
答案 0 :(得分:1)
这样做吗?我想念什么吗?
console.log(1)
setTimeout(() => {
console.log(2)
console.log(3)
}, 2000)
答案 1 :(得分:0)
我认为您可能正在寻找的(虽然从问题中看不出来)是所谓的“回调”功能。通常的想法是,当函数A完成时,它将调用函数B(回调)。通过这种方式,您可以将所有东西链接在一起,以按所需的顺序运行。
查看示例:
const callback = function(){
console.log(3);
};
$('#go').on('click', function(){
console.log('1')
setTimeout(function(){
console.log(2);
callback();
}, 2000);
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button id="go">Go</button>
答案 2 :(得分:0)
用户RxJ和一些反应式编程。
const { of, Subject } = rxjs;
const { delay } = rxjs.operators;
const watch = new Subject();
console.log(1);
of(1).pipe(delay(2000)).subscribe(() => {
console.log(2);
watch.next();
});
watch.subscribe(() => {
console.log(3);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/6.4.0/rxjs.umd.min.js"></script>