0
公佈的對象,我使用與GraphQL訂閱和訂閱運輸-WS的Express服務器。GraphQL-訂閱:如何獲得認購解析器
我已經設置了一個給定信道的訂閱:
...
const subscriptionManager = new SubscriptionManager({
schema: executableSchema,
pubsub: pubsub,
setupFunctions: {
testRunChanged: (options, args) => {
return {
testRunChangedChannel: {
filter: (testRun) => {
return testRun.id === args.testRunId;
}
},
};
},
},
});
...
收到突變後的過程被啓動,其中試運行的數據庫條目是在服務器上更新等結束了。現在,當數據庫操作的更新承諾通過時,應該通知客戶端。
使用從發佈訂閱訂閱管理髮布功能,獲取有關更新的測試運行的信息:
...
RunningTestDbService.setToFinished(testRun).then(updatedTestRun => {
pubsub.publish("testRunChangedChannel", updatedTestRun);
})
...
的訂閱管理器後置過濾器的訂閱取決於公佈testRun和訂閱testRunId調用訂閱解析器函數。要更新客戶端,我必須再次獲取更新的測試運行。
我怎樣才能得到訂購解析函數內公佈的試運行對象?
認購和解析器是這樣的:
...
`testRunChanged(testRunId: ID!): TestRun!`
...
Subscription: {
testRunChanged(_, { testRunId }) {
// need to fetch the test run from database again
return TestRunDbService.getTestRunWith(testRunId);
},
},
...