Javascript 如何从使用settimeout的函数返回值?
在这种情况下,我需要通过调用函数返回一个值。 情况如下:Javascript 如何从使用settimeout的函数返回值?,javascript,jquery,asynchronous,settimeout,Javascript,Jquery,Asynchronous,Settimeout,在这种情况下,我需要通过调用函数返回一个值。 情况如下: 单击dom元素 使用setTimeout()等待另一个元素消失(进程结束的标志) 然后获取值并返回 关键是我能够通过回调或嵌套函数实现所需的点,我可以提醒或分配给某个全局变量。 但是我需要从函数返回它,因为它将从C#HtmlDocument invokeScript()方法调用 下面是一个示例代码: function getValue() { $('#myElement').click(); return waitFo
- 单击dom元素
- 使用setTimeout()等待另一个元素消失(进程结束的标志)
- 然后获取值并返回
function getValue() {
$('#myElement').click();
return waitFor();
}
function waitFor() {
if($('#another').hasClass('active')) {
setTimeout(function() {waitFor();}, 100);
} else {
// alert ($('#desiredValue').text());
return $('#desiredValue').text();
}
}
getValue();
如果您正在使用CSS转换(我假设您是因为您正在删除一个类,并且我假设删除这个类会导致元素随着时间的推移“消失”),那么您可以侦听
transitionend
事件:
someElement.addEventListener('transitionend', doSomething, false);
function doSomething() {
// make something cool happen once the animation is complete
}
是否要求从
waitFor
返回$(“#desiredValue”).text()
?是否可以在问题中包含html
?请再解释一下,哪些函数将在超时时间内运行?获取价值?等待?要返回哪个值?不能从setTimeout调用的函数返回值。@bhspencer“不能从setTimeout调用的函数返回值。”jQuery.Deferred()
可以从setTimeout
内的waitFor
返回值?@ArmanGalyan可以描述getValue
,waitFor
的预期返回值?“如果使用CSS转换”注意,animationand
事件不同于transitionnd
event@guest271314啊对,谢谢你纠正这一点。我已经编辑了我的答案。我假设invokeScript是同步的。如果是这样,那么$('#other').hasClass('active')将返回false,那么您将需要多次调用invokeScript。