首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >等待JavaScript函数完成后再继续

等待JavaScript函数完成后再继续
EN

Stack Overflow用户
提问于 2018-09-24 03:41:16
回答 3查看 319关注 0票数 0

这可能不是一个复杂的问题,但我不确定我是否在正确的轨道上。

我的目标是首先运行一个JavaScript函数,当执行完全完成时(这可能需要几秒钟,但并不总是),关闭窗口。

只需1个按钮即可触发功能和关闭:

<button id="myID">Click me</button>

JavaScript为:

<script type="text/javascript">
    function someFunction() {
        // do some stuff
    }

    document.getElementById('myID').addEventListener("click", function(){
        someFunction();
        window.close();
    });
</script>

这种方法工作得很好,但如果这是一种可靠的方法,是否有人能给出一些建议呢?在触发window.close()之前完全完成函数的执行是很重要的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-09-24 03:46:35

你可以把你的window.close()放在你的alert();下面。然而,如果你想添加更多的异步内容,你想要一个像这样的回调函数。

<script type="text/javascript">
    var closeWindow = function() {
        window.close();
    };

    function someFunction(callback) {
        alert('hi');
        callback();
    }

    document.getElementById('myID').addEventListener("click", function(){
        someFunction(closeWindow);
    });
</script>
票数 4
EN

Stack Overflow用户

发布于 2018-09-24 03:44:52

同步javascript将始终以自顶向下的顺序运行,并且将始终保证指令一将在指令二之前完成。

但是,还有一个异步部分(这里没有,但例如ajax请求通常是异步的),它的执行方式不同,需要callbacks/promises

票数 2
EN

Stack Overflow用户

发布于 2018-09-24 03:53:11

您可以选择:

  1. window.close();放在回调函数中
  2. promises这样您可以控制回调执行/if是否有错误,您可以更好地处理它而不关闭窗口/
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52469641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档