mirror of
https://github.com/DeviceFarmer/stf.git
synced 2026-04-19 08:33:24 +02:00
Hopefully get rid of FrameProducer._stop() timeouts. Doesn't reproduce locally.
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
var util = require('util')
|
||||
|
||||
var Promise = require('bluebird')
|
||||
var EventEmitter = require('eventemitter3').EventEmitter
|
||||
|
||||
function RiskyStream(stream) {
|
||||
@@ -34,4 +35,27 @@ RiskyStream.prototype.expectEnd = function() {
|
||||
return this
|
||||
}
|
||||
|
||||
RiskyStream.prototype.waitForEnd = function() {
|
||||
var stream = this.stream
|
||||
, endListener
|
||||
|
||||
this.expectEnd()
|
||||
|
||||
return new Promise(function(resolve/*, reject*/) {
|
||||
if (stream.ended) {
|
||||
return resolve(true)
|
||||
}
|
||||
|
||||
stream.on('end', endListener = function() {
|
||||
resolve(true)
|
||||
})
|
||||
|
||||
// Make sure we actually have a chance to get the 'end' event.
|
||||
stream.resume()
|
||||
})
|
||||
.finally(function() {
|
||||
stream.removeListener('end', endListener)
|
||||
})
|
||||
}
|
||||
|
||||
module.exports = RiskyStream
|
||||
|
||||
Reference in New Issue
Block a user