How can I make that if after 2 seconds you keep holding the mouse over a Frame, a condition is met?

Well, basically I want that when you keep the mouse over a Frame for 2 seconds, a condition is met. I really have a pretty bad idea, and that is to put 2 Booleans and that every second that a Boolean is set to true and when both Booleans are true, the condition is met. However, it will take a long time for the LocalScript

local Players = game:GetService("Players")
local Player = Players.LocalPlayer
local Mouse = Player:GetMouse()


local Button = script.Parent:WaitForChild("Frame")

Button.MouseEnter:Connect(function()
	--What do I do here?
end)
local Players = game:GetService("Players")
local Player = Players.LocalPlayer
local Mouse = Player:GetMouse()
local Button = script.Parent:WaitForChild("Frame") --this reference makes no sense by the way
local IsIn = false

Button.MouseEnter:Connect(function()
	IsIn = true
	local currTime, newTime = tick(), tick()
	while IsIn do
		task.wait()
		newTime = tick()
		if newTime - currTime >= 2 then
			--do actions
			break --break out of loop
		end
	end
end)

Button.MouseLeave:Connect(function()
	IsIn = false
end)