Попытка преобразовать сценарий, включающий webrtc, в async / await, терпящий неудачу - PullRequest
0 голосов
/ 29 октября 2018

Я следую этому учебнику , чтобы заставить webrtc работать. Я хотел бы вернуть потоки, которые я получаю в resol (), компоненту, из которого я вызываю этот метод getDrone (). Я создал функцию returnStreamArray () как дочернее обещание, которое я пытался добавить в качестве then () в поток, чтобы добавить его в массив, однако я застрял. Буду признателен за любые указания.

     export default function getDrone() {
  return new Promise((resolve, reject) => {
    const drone = new Scaledrone('fBAkzbVAOmA2wbU0');
    const roomName = 'observable-room';
    const configuration = {
      iceServers: [
        {
          urls: 'stun:stun.l.google.com:19302'
        }
      ]
    };
    let room;
    let pc;
    const streamArr = [];

   ...
    drone.on('open', error => {
      if (error) {
        console.error(error);
      }
      room = drone.subscribe(roomName);
      room.on('open', error => {
        if (error) {
          onError(error);
        }
      });

     ..

   ..

      pc.ontrack = event => {
        const stream = event.streams[0];

        streamArr.push(stream);
      };

      navigator.mediaDevices
        .getUserMedia({
          audio: true,
          video: true
        })
        .then(stream => {

          streamArr.push(stream);

          stream.getTracks().forEach(track => pc.addTrack(track, stream));
        }, onError)
        .then(returnStreamArray => {
          console.log(stream);
        });
..
..
      });
    }

    function returnStreamArray() {
      return Promise.resolve({
        streamArray: streamArr
      });
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...