function a() {
var data;
b();b();//多次执行
var b = function () {
if (flag == true) {
/*......很多执行后*/
data = 3333333333333;
}
};
return data;
}
我要在另一个方法中调用方法a,以获取返回值data,请问怎么写。
data=333333333333是很多操作后的结果,显然
调用var a = a();return a//undefined
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
两个问题
第1个,在
a() {}中,先执行b再给b赋值,会抛TypeError: b is not a function。第2个,
var a = a()已经把 a 重写了,第一次执行是没有什么问题,如果还有其它地方执行a()就会出问题了。然后看你的逻辑,如果你的
b()不是异步执行的,而且保证 flag 至少有一次为 true,那a()的返回就不可能是undefined。如果你确实得到了undefined,可以检查一下是不是 flag 没有为 true 的时候,或者b()里面有异步代码(比如 ajax)。如果是因为b()里面有异步代码,那就要考虑用Promise或者类似的库来实现总之,我觉得这段代码是你为了问问题临时精简出来的,不能发现原来真实的问题是哪里引起的。
在a函数里面执行一下b函数就好啦,然后再返回data
function a() {
}
你把a中b的执行放在b的赋值之后,再确保flag == true为真就可以了。