首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >超时不会超时

超时不会超时
EN

Stack Overflow用户
提问于 2013-06-25 21:08:08
回答 2查看 81关注 0票数 1

我在一个javascript对象中有一组函数。以下是其中之一:

代码语言:javascript
复制
addImage: function(evt) {
        var file = evt.target.files[0];
        /* Only process image files.*/
        if(file.type.match('image.*')) {
            /*Add image to FileReader object*/
            var reader = new FileReader();
            reader.readAsDataURL(file);
            /*Add image to local storage */
            reader.onload = (function(theFile) {
                return function(e) {
                    localStorage.setItem(underlayer.url, e.target.result);
                    //add image
                    underlayer.setImage();
                    underlayer.setPosition();
                    setTimeout(underlayer.setHeight(), 5000);

                };
            })(file);
        }
    },

我希望underlayer.setHeight()在延迟后触发它是必要的,因为它读取加载到本地存储中的图像的高度,这需要几个milliseconds.However,underlayer.setHeight是发射触发的,而不是延迟的。

EN

回答 2

Stack Overflow用户

发布于 2013-06-25 21:09:30

通过将()放在setHeight之后,可以调用该函数,并将其返回值传递给setTimeout。这显然不是你想要做的。

卸下(),它应该可以正常工作。

编辑:忘记上下文。那么,setTimeout(function() {underlayer.setHeight();},5000);可能是您最好的选择。

票数 8
EN

Stack Overflow用户

发布于 2013-06-25 21:10:55

您需要更改您的setTimeout代码。

代码语言:javascript
复制
setTimeout(function(){underlayer.setHeight()},5000);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17298205

复制
相关文章

相似问题

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