2017-03-09 1 views
2

autorun입니다.유성 연기 - 반응성에 대한 영향

this.autorun(() => { 
    Meteor.defer(() => { 
    functionThatUsesASessionVariable(); 
    }); 
}); 

이 자동 실행은 세션 변수가 변경 될 때 다시 실행되지 않습니다.

defer을 제거하면 세션 변수가 변경 될 때 다시 실행됩니다.

this.autorun(() => { 
    functionThatUsesASessionVariable(); 
}); 

그러나 실제로는 지연 반응과 반응성을 원합니다. 둘 다 얻을 수있는 방법이 있습니까?

====

(현재 최선의 플레이는 바로 바로 반응을 트리거, 아무것도 할당되지 않은 autorun의 시작 부분에 Session.get('sessionVar')을가됩니다.)

this.autorun(() => { 
    Session.get('sessionVar'); 
    Meteor.defer(() => { 
    functionThatUsesASessionVariable(); 
    }); 
}); 

(그러나 이것은 반응이 시간에 따라 변할 수있는 함수의 종속성에서 직접 오는 경우 더 좋기 때문에 분명히 좋지 않습니다.

답변

0

시도

this.autorun(() => { 
    if (Session.get('yourVar')){ 
    Meteor.defer(() => { 
     functionThatUsesASessionVariable(); 
    }); 
    } 
}); 

그렇지 않으면 자동 실행이 세션 변수에 대한 종속성을 등록하지 않을 수 있습니다.