我有三个javascript文件1.js,2.js,3.js
function getOne()
{
return "one";
}
function getTwo()
{
return "two";
}
getOne(function(resp1)
{
console.log(resp1)
getTwo(function(resp2)
{
console.log(resp2);
}
});
3.js中的函数调用根本不会执行。我按顺序加载js文件 1.js 2.js 3.js
请某人帮忙
答案 0 :(得分:3)
如上所述,它不起作用的原因是你的方法不处理你作为参数传入的回调。
要让它像你想要的那样工作,你需要重写你的方法,如下所示:
function getOne(callback)
{
callback("one");
}
function getTwo(callback)
{
callback("two");
}
由于您的问题与功能执行同步有关,因此您可能希望沿着另一条路走下去。
你正在做的事情对于几个函数都可以正常工作,但是当你达到想要同步许多函数的程度时,你最终会得到pyramid of doom代码向右移动的速度比行进速度快前进。
step1(function (value1) {
step2(value1, function(value2) {
step3(value2, function(value3) {
step4(value3, function(value4) {
...continue ad nauseum
});
});
});
});
在这种情况下,您可能需要查看futures and promises
您可以在此处阅读有关javascript中的承诺模式的更多信息:
答案 1 :(得分:0)
代码:
getOne(function(resp1)
{
console.log(resp1)
getTwo(function(resp2)
{
console.log(resp2);
}
}
);
实际上是调用getOne
,但它会将匿名函数作为参数传递。 getOne
实际上并不接受任何参数(虽然传递一个参数不会造成伤害,也不会导致任何错误),也不会在任何地方执行执行的匿名函数。
我不确定你要做什么,但我首先要给getOne
一个参数:
function getOne(fnFoo)
{
return "one";
}
然后,您就可以调用传入的函数:
function getOne(fnFoo)
{
fnFoo();
return "one";
}