web-speech-profanity
Version:
Web Speech API adapter to use Cognitive Services Speech Services for both speech-to-text and text-to-speech service.
31 lines (24 loc) • 524 B
JavaScript
import createDeferred from 'p-defer-es5';
export default function() {
let shiftDeferred;
const queue = [];
const push = value => {
if (shiftDeferred) {
const { resolve } = shiftDeferred;
shiftDeferred = null;
resolve(value);
} else {
queue.push(value);
}
};
const shift = () => {
if (queue.length) {
return Promise.resolve(queue.shift());
}
return (shiftDeferred || (shiftDeferred = createDeferred())).promise;
};
return {
push,
shift
};
}