subscribeToTopic()

in packages/aws-appsync-subscription-link/src/subscription-handshake-link.ts [196:215]


    subscribeToTopic<T>(client, topic: string, observer: ZenObservable.Observer<T>) {
        return new Promise((resolve, reject) => {
            (client as any).subscribe(topic, {
                onSuccess: () => {
                    if (!this.topicObservers.has(topic)) {
                        this.topicObservers.set(topic, new Set());
                    }
                    if (!this.clientObservers.has(client.clientId)) {
                        this.clientObservers.set(client.clientId, { client, observers: new Set() });
                    }

                    this.topicObservers.get(topic).add(observer);
                    this.clientObservers.get(client.clientId).observers.add(observer);

                    resolve(topic);
                },
                onFailure: reject,
            });
        });
    }