首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当函数结束时如何运行代码?

当函数结束时如何运行代码?
EN

Stack Overflow用户
提问于 2013-11-01 18:00:33
回答 4查看 115关注 0票数 0

我真的在互联网上搜索了很长时间才找到这个问题。我只想在之前调用的函数结束时运行代码。让我来解释一下这个例子:

代码语言:javascript
运行
复制
var id=0;

function refreshID(){
    //refresh the div
}

function postID(){
    //some code
    refreshID();
    id=1;    
}

通过调用函数postID,将执行函数refreshID,然后将变量id设置为1。但我认为在函数refreshID()完全执行之前,变量已设置为1。所以我的问题是:当另一个函数结束时,当它完全执行时,如何运行代码(在本例中更改变量的值)。

问候

EN

Stack Overflow用户

发布于 2013-11-01 18:06:03

JavaScript是单线程的,因此可以保证代码线性运行--它永远不会跳过代码行。

在您的示例中,id = 1总是在refreshID返回之后执行。让事情变得更复杂的是,refreshID可能会将事情设置为异步完成,例如使用setTimeout,在这种情况下,refreshID将在回调运行之前返回。在这种情况下,将回调传递给函数或使用promises可能很有用。

例如:

代码语言:javascript
运行
复制
var id = 0;

function refreshID(cb) {
    setTimeout(function () {
        // your work
        // ...

        cb();
    });
}

function postID(){
    // some code
    refreshID(function () { id = 1; });
}
票数 0
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19724494

复制
相关文章

相似问题

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