前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Vue中使用setTimeout()定时器延迟执行方法不生效的原因及解决

Vue中使用setTimeout()定时器延迟执行方法不生效的原因及解决

作者头像
德顺
发布2020-02-24 15:57:55
8K0
发布2020-02-24 15:57:55
举报
文章被收录于专栏:前端资源前端资源

在工作中遇到一个问题,在发布产品后,弹窗提示成功,2秒后弹窗关闭,跳转列表页。

示例:

代码语言:javascript
复制
setTimeout(function () {
  this.closeModal()
  list.api.reloadData();
},2000)

直接使用上面的代码执行 closeModal() 方法会报错 Uncaught TypeError: this.showModal is not a function ,不能正常执行。 

如果要在 Vue.js 中执行 setTimeout() 方法,应该使用下面的代码:

代码语言:javascript
复制
const that = this;
setTimeout(function () {
  that.closeModal()
  list.api.reloadData();
},2000)

需要注意一下,在 setTimeout() 方法中如果用到 this ,必须在函数外定义一个变量来暂存 this 。

如果不需要使用 this,则不用定义。代码如下:

代码语言:javascript
复制
setTimeout(function () {
  list.api.reloadData();
},2000)

以上,希望对您有所帮助。

声明:本文由w3h5原创,转载请注明出处:《Vue中使用setTimeout()定时器延迟执行方法不生效的原因及解决》 https://cloud.tencent.com/developer/article/1589507

本文已加入 腾讯云自媒体分享计划 (点击加入)

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档