Quellcode durchsuchen

Wrap thrown errors into Promise.reject for consistency.

Handle case when JitsiLocalTrack#dispose() is called after track was removed from conference.
Set track's conference reference to null when removing track from conference.
dev1
tsareg vor 9 Jahren
Ursprung
Commit
332c0957f3
1 geänderte Dateien mit 8 neuen und 8 gelöschten Zeilen
  1. 8
    8
      JitsiConference.js

+ 8
- 8
JitsiConference.js Datei anzeigen

314
  */
314
  */
315
 JitsiConference.prototype.addTrack = function (track) {
315
 JitsiConference.prototype.addTrack = function (track) {
316
     if (track.disposed) {
316
     if (track.disposed) {
317
-        throw new JitsiTrackError(JitsiTrackErrors.TRACK_IS_DISPOSED);
317
+        return Promise.reject(
318
+            new JitsiTrackError(JitsiTrackErrors.TRACK_IS_DISPOSED));
318
     }
319
     }
319
 
320
 
320
     if (track.isVideoTrack()) {
321
     if (track.isVideoTrack()) {
326
             if (track === localVideoTrack) {
327
             if (track === localVideoTrack) {
327
                 return Promise.resolve(track);
328
                 return Promise.resolve(track);
328
             } else {
329
             } else {
329
-                throw new Error(
330
-                        "cannot add second video track to the conference");
330
+                return Promise.reject(new Error(
331
+                    "cannot add second video track to the conference"));
331
             }
332
             }
332
         }
333
         }
333
     }
334
     }
430
  * @returns {Promise}
431
  * @returns {Promise}
431
  */
432
  */
432
 JitsiConference.prototype.removeTrack = function (track) {
433
 JitsiConference.prototype.removeTrack = function (track) {
433
-    if(track.disposed)
434
-    {
435
-        throw new Error(JitsiTrackErrors.TRACK_IS_DISPOSED);
434
+    if (track.disposed) {
435
+        return Promise.reject(
436
+            new JitsiTrackError(JitsiTrackErrors.TRACK_IS_DISPOSED));
436
     }
437
     }
437
 
438
 
438
     if(!this.room){
439
     if(!this.room){
445
     return new Promise(function (resolve, reject) {
446
     return new Promise(function (resolve, reject) {
446
         this.room.removeStream(track.getOriginalStream(), function(){
447
         this.room.removeStream(track.getOriginalStream(), function(){
447
             track._setSSRC(null);
448
             track._setSSRC(null);
448
-            //FIXME: This dependacy is not necessary. This is quick fix.
449
-            track._setConference(this);
449
+            track._setConference(null);
450
             this.rtc.removeLocalTrack(track);
450
             this.rtc.removeLocalTrack(track);
451
             track.removeEventListener(JitsiTrackEvents.TRACK_MUTE_CHANGED,
451
             track.removeEventListener(JitsiTrackEvents.TRACK_MUTE_CHANGED,
452
                 track.muteHandler);
452
                 track.muteHandler);

Laden…
Abbrechen
Speichern