-- Resolve a promise once the signal is fired once

function Signal:Promise(predicate)
	return Promise.FromEvent(self, predicate)
end


function Signal:Destroy()
	self:DisconnectAll()
	local proxyHandler = rawget(self, "_proxyHandler")
	if proxyHandler then
		proxyHandler:Disconnect()
	end
end

