JS replacement for global variable

Viewed 34

For my voice recorder app, I'm looking for a possibility to change implementation of global variable 'recorder'. As it is commonly known global variables aren't recommended. Can it be done differently?

var recorder;
export default function AddAudio() {

    const Start = async () => {
        navigator.mediaDevices.getUserMedia({ audio: true })
            .then((stream) => {
                recorder = new MediaRecorder(stream);
                recorder.start();
                let chunks = [];
                recorder.addEventListener("dataavailable", event => {
                    chunks.push(event.data);
                });

                recorder.addEventListener("stop", () => {
                    const blob = new Blob(chunks);
                });
            })
    }
    const Stop = () => {
        recorder.stop();
    };
1 Answers

Put it inside the function

export default function AddAudio() {
    let recorder;
    const Start = async () => {
        navigator.mediaDevices.getUserMedia({ audio: true })
            .then((stream) => {
                recorder = new MediaRecorder(stream);
                recorder.start();
                let chunks = [];
                recorder.addEventListener("dataavailable", event => {
                    chunks.push(event.data);
                });

                recorder.addEventListener("stop", () => {
                    const blob = new Blob(chunks);
                });
            })
    }
    const Stop = () => {
        recorder.stop();
    };
}

P.S.

Don't use var please

Related