【问题标题】:Why do we call $timeout with no delay argument. [duplicate]为什么我们在没有延迟参数的情况下调用 $timeout。 [复制]
【发布时间】:2016-03-23 20:27:55
【问题描述】:

我正在尝试阅读一些 angularjs 代码 有一点是在没有延迟参数的情况下调用 $timeout。

dataBinding: () => {
            this.$timeout(() => {
                this.selectedRow = null;
            });
        },

这样做的目的是什么?

【问题讨论】:

  • 不清楚您在问什么请说明您的具体问题或添加其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。请参阅“如何提问”页面以获得澄清此问题的帮助。
  • 确保代码异步运行。

标签: angularjs


【解决方案1】:

在这种情况下(angular.js),这是一种解决方法 - 当您只是想将您的操作推迟到下一个角度 digest 循环(并确保当前不会发生这种情况)消化循环)。

如果是这种情况,您最好使用$scope.$evalAsync()。 见http://www.bennadel.com/blog/2605-scope-evalasync-vs-timeout-in-angularjs.htm

【讨论】:

  • $timeout 也将返回一个承诺。如果由于某种原因开发人员不想注入$q,则可以使用它来替换$q.when
  • 没错,但在这种情况下,没有人对调用$timeout得到的结果无所事事。
  • 是的,只是为了完整性而添加。
【解决方案2】:

如果不设置延迟值,则设置为 0。

但实际延迟可能会更长;见this

你可以看到why setting delay value to 0 is useful?

【讨论】:

    猜你喜欢
    • 2021-05-23
    • 1970-01-01
    • 2020-01-05
    • 2022-01-06
    • 2012-10-07
    • 1970-01-01
    • 2022-06-10
    • 1970-01-01
    相关资源
    最近更新 更多