What's better timer or Think?

Hello i need to change holdtype from fist to normal after 1 sec from punch.
How i want to do this:



function SWEP:PrimaryAttack()
  -- change holdtype to fist then punch
  timer.Simple(1, function()
    -- back to normal holdtype
  end)
end


but in Gmad fists wep. i found this part of code:



function SWEP:Think()
  ...
  if ( SERVER && CurTime() > self:GetNextPrimaryFire() + 0.1 ) then
    self:SetCombo( 0 )
  end
end


We do SetCombo(0) NWVar each frame. Is it normal? Why not timer?

The waepon_fists approach is better because it also supports clientside prediction.

So we don’t need to do SetCombo once? Nothing wrong that we setting NW var to 0 each frame?