function Promise.defer(c)local X=Promise.new()task.defer(c,X:_getResolveReject())return X end

function Promise.defer(func)
	local self = Promise.new()

	-- Just the function part of the resolve/reject protocol!
	task.defer(func, self:_getResolveReject())

	return self
end
