Я пытаюсь использовать подписку в своем клиентском приложении для отправки Токен JWT и refreshToken на сервер с помощью WebSocketLink connectionParams. Но проблема в том, что мой токен и refreshToken сохраняются внутри AsynStorage, что требует от меня использования async await для получения значения. Когда я пытался использовать await, он отправлял undefined на сервер.
Вот код ниже:
// Create a WebSocket link:
const wsLink = new WebSocketLink({
uri: wsUri,
options: {
reconnect: true,
connectionParams: async () => {
return {
token: await AsyncStorage.getItem('token'),
refreshToken: await AsyncStorage.getItem('refreshToken')
}
}
}
});
Если я установлю ключ плана, он будет работать. Но мне нужно получить токены из хранилища Async с помощью await. Как я могу это сделать?
@ TuấnTrầnDuy. Спасибо за ссылку. но он еще не был объединен. Могу ли я отредактировать код в моем node_module и проверить, может ли он заставить его работать?
Вы можете форкнуть и отредактировать его самостоятельно или просто изменить код SubscriptionClient.prototype.connect в файле client в node_modules.
Я просто попытался изменить файл сейчас, но то, что находится в запросе на перенос, является обычным кодом Js, но я нашел машинописный текст. И PR ссылается на src / client.ts, но я нашел в папке dist / client.js
Да, вы можете изменить dist/client.js, просто нашли SubscriptionClient.prototype.connect и отредактировать его, как это делает запрос на перенос. Но вам следует разветвить этот проект, отредактировать и построить для долгосрочного использования.
У меня это работает. Спасибо за помощь!





В последней версии
0.9.8subscriptions-transport-wsон по-прежнему не поддерживает возвратconnectionParams. Но у него был запрос на перенос, связанный с этой проблемой, и вы можете сослаться на него github.com/apollographql/subscriptions-transport-ws/pull/348