do sub {...} # the function returns one data chunk per call