1
자바 스크립트에서 한 객체에서 다른 객체로 이벤트를 전달하는 데 문제가 있습니다. 나는 그것을하기 위해 PubSub를 사용하려고 시도했다. 예를 들어 보겠습니다.javascript의 사용자 정의 이벤트 처리
function A() {
function _publish(){
PubSub.publish("test");
}
function _doSth() {
console.log("Done!");
}
return {
publish: _publish,
doSth: _doSth
};
}
function B() {
var objA = new A();
PubSub.subscribe("test", function(){
objA.doSth();
});
}
이 코드 예는 내 애플리케이션의 객체 구조와 유사합니다. B 객체의 인스턴스는 public이지만 객체 A의 인스턴스는 B 객체의 private입니다.
문제는 "테스트"이벤트가 게시 될 때 pubsub가 처리하지만 objA가 전역 적이 지 않기 때문에 콘솔에서 doSth 함수가 정의되지 않았 음을 알 수 있습니다.
누구나 어떻게 해결할 수 있을까요? 내가 무엇을 pubsub하지만 objA는 B 내부 로컬 잘 모릅니다
그러나 objA가 전역 적이 지 않아서 pub-sub 패턴에 문제가 될 수 없다. 않는 한 .. 어떤 PubSub 구현을 사용하고 있습니까? 그리고 당신은'objA.publish()'를 어디에서 호출할까요? – dfsq
amplify.js와 nunt를 사용 중이었지만 그 중 아무 것도 작동하지 않았습니다. 그러나 지금 PubSub.js를 시도하고 모든 것이 작동하는 것처럼 보입니다 : O. – jacobs