在下面的 'then' 函数中取消 $timeout 是否有效?

Does canceling a $timeout in the following 'then' function work?

我一直这样做,但我不太确定它是否有效。如果是这样,我该如何检查?如果没有,有什么更好的方法可以在完成后取消超时?

var delay = $timeout(function() {
      for (i = 0; i < allHighlightedEls.length; i += 1) {
       //... some transformations
      }
    }, 1000)
      .then(function() {
        $timeout.cancel(delay);
      });

完成后,完成。没有什么可以取消的了。

对其调用 cancel 没有任何作用。