我已经完成了一个 nodejs 后端Nestjs,我正在使用Graphql. 我的前端是 Ionic/Angular,使用 Apollo-angular 来处理 graphql 的东西。
我在订阅数据添加/更改时遇到问题。Playground(由 Nestjs 提供)工作得很好,这让我暗示问题出在前端。
我有game并且scores在我的数据模型中,每个分数都属于一个游戏。在前端,我试图聆听添加到特定游戏的新分数。
这是我的一个片段resolver:
@Mutation(returns => Score)
async addScore(@Args('data') data: ScoreInput): Promise<IScore> {
return await this.scoresService.createScore(data);
}
@Subscription(returns => Score, {
filter: (payload, variables) => payload.scoreAdded.game + '' === variables.gameId + '',
})
scoreAdded(@Args('gameId') gameId: string) {
return this.pubSub.asyncIterator('scoreAdded');
}
Run Code Online (Sandbox Code Playgroud)
这是service方法:
async createScore(data: any): Promise<IScore> {
const score = await this.scoreModel.create(data);
this.pubSub.publish('scoreAdded', { scoreAdded: score }); …Run Code Online (Sandbox Code Playgroud)