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

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 )

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?