如何从使用settimeout的函数返回值?

时间:2015-09-15 21:24:23

标签: javascript jquery asynchronous settimeout

我遇到需要通过调用函数返回值的情况。 方案如下:

  • 点击dom元素,
  • with setTimeout()等待另一个元素消失(进程的符号结束),
  • 然后获取值并返回

关键是我能够通过回调或嵌套函数实现所需的点,我可以提醒或分配一些全局变量。 但我需要从函数中返回它,因为它将从C#HtmlDocument invokeScript()方法调用。

以下是一个示例代码:

function getValue() {
    $('#myElement').click();
    return waitFor();
}
function waitFor() {
    if($('#another').hasClass('active')) {
        setTimeout(function() {waitFor();}, 100);
    } else {
        // alert ($('#desiredValue').text());
        return $('#desiredValue').text();
    }
}
getValue();

1 个答案:

答案 0 :(得分:0)

如果你正在使用CSS过渡(我假设你是因为你正在删除一个类,我认为删除这个类导致元素随着时间的推移而消失了#34;那么你可以收听transitionend事件:

someElement.addEventListener('transitionend', doSomething, false);

function doSomething() {
  // make something cool happen once the animation is complete
}