Jobs don't have output available until Completed
Using regular jobs, try the following:
$job = Start-Job -ScriptBlock { 1..100 | %{ $_ ; Start-Sleep -Seconds 1 } }
do { receive-job $job; sleep -s 1} until ( $job.state -eq 'Completed' -and -not $job.HasMoreData )
The loop will slowly execute, receiving and echoing the output of the running job. Now try the same with PoshRSJob:
$job = Start-RSJob -ScriptBlock { 1..100 | %{ $_ ; Start-Sleep -Seconds 1 } }
do { receive-RSJob -id $job.id ; sleep -s 1} until ( $job.state -eq 'Completed' -and -not $job.HasMoreData )
This has two problems. First, instead of showing the output as it progresses like regular jobs do, the PoshRSJob example won't produce output until the end. HasMoreData is never true until the job completes. Second, as mentioned previously, reading the job output doesn't clear HasMoreData so the loop never terminates; repeatedly echoing the job output until cancelled.
I would put this in the same bucket as #59 in that it is currently by design until I (or someone else) can figure out a way to allow streaming when using a runspace.