gpt4 book ai didi

javascript - 嵌套的 JavaScript 回调函数

转载 作者:行者123 更新时间:2023-11-29 16:10:20 26 4
gpt4 key购买 nike

有人能解释一下为什么会这样吗(即延迟 1 在延迟 2 之前执行):

function testCallBack() {
one(two);
}

function one(callback) {
setTimeout(function () {
alert("delay 1");
callback();
}, 2000);
}

function two() {
setTimeout(function () {
alert("delay 2")
}, 1000);
}

testCallBack();

http://jsfiddle.net/z71gkpfg/

但这不是(延迟 2 以某种方式在延迟 1 之前执行):

function testCallBack() {
one(two(three));
}

function one(callback) {
setTimeout(function () {
alert("delay 1");
callback();
}, 3000);
}

function two(callback) {
setTimeout(function () {
alert("delay 2");
callback();
}, 2000);
}
function three(){
setTimeout(function () {
alert("delay 3");
}, 1000);
}
testCallBack();

https://jsfiddle.net/511nLm95/

我是否没有正确嵌套我的回调函数?

最佳答案

您需要将函数引用传递给 one

所以这里的解决方案可能是将一个匿名函数作为回调传递给 one ,它将调用 twothree 作为回调引用。

function testCallBack() {
one(function(){
two(three);
});
}

演示:Fiddle

关于javascript - 嵌套的 JavaScript 回调函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30362791/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com