How to use a prisma graphql subscription in node app
up vote
0
down vote
favorite
I am following this guide. I am trying to listen to a graphQL subscription in my node app. I am having a lot of trouble implementing that subscription. I have a tried a few different ways, listed below, none of them are working.
// converted to rxjs observables
from(PrismaClient.$subscribe.priority(
mutation_in: "CREATED"
)).subscribe(
(next) =>
console.log("next", next);
,
() =>
console.log("error");
,
() =>
console.log("complete");
);
// as promise
PrismaClient.$subscribe.priority(
mutation_in: "CREATED"
).then(
(next) =>
console.log("next", next);
);
Both of these just return in the next:
next: [Function: next],
return: [Function: return],
throw: [Function: throw],
'@@asyncIterator': [Function]
I would expect it to return the priority
that was created any time a new one is created. However, it only returns one time and immediately completes and returns that object i listed above.
I understand this has something to do with it returning back an Promise<AsyncIterator<...>>
, but i am not sure how to solve this issue.
How do i create a prisma graphql subscription in a node app using the prisma-client
? I would also, like to convert this to rxjs
instead of using promises
. I just prefer Observables
.
typescript rxjs graphql prisma async-iterator
add a comment |
up vote
0
down vote
favorite
I am following this guide. I am trying to listen to a graphQL subscription in my node app. I am having a lot of trouble implementing that subscription. I have a tried a few different ways, listed below, none of them are working.
// converted to rxjs observables
from(PrismaClient.$subscribe.priority(
mutation_in: "CREATED"
)).subscribe(
(next) =>
console.log("next", next);
,
() =>
console.log("error");
,
() =>
console.log("complete");
);
// as promise
PrismaClient.$subscribe.priority(
mutation_in: "CREATED"
).then(
(next) =>
console.log("next", next);
);
Both of these just return in the next:
next: [Function: next],
return: [Function: return],
throw: [Function: throw],
'@@asyncIterator': [Function]
I would expect it to return the priority
that was created any time a new one is created. However, it only returns one time and immediately completes and returns that object i listed above.
I understand this has something to do with it returning back an Promise<AsyncIterator<...>>
, but i am not sure how to solve this issue.
How do i create a prisma graphql subscription in a node app using the prisma-client
? I would also, like to convert this to rxjs
instead of using promises
. I just prefer Observables
.
typescript rxjs graphql prisma async-iterator
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I am following this guide. I am trying to listen to a graphQL subscription in my node app. I am having a lot of trouble implementing that subscription. I have a tried a few different ways, listed below, none of them are working.
// converted to rxjs observables
from(PrismaClient.$subscribe.priority(
mutation_in: "CREATED"
)).subscribe(
(next) =>
console.log("next", next);
,
() =>
console.log("error");
,
() =>
console.log("complete");
);
// as promise
PrismaClient.$subscribe.priority(
mutation_in: "CREATED"
).then(
(next) =>
console.log("next", next);
);
Both of these just return in the next:
next: [Function: next],
return: [Function: return],
throw: [Function: throw],
'@@asyncIterator': [Function]
I would expect it to return the priority
that was created any time a new one is created. However, it only returns one time and immediately completes and returns that object i listed above.
I understand this has something to do with it returning back an Promise<AsyncIterator<...>>
, but i am not sure how to solve this issue.
How do i create a prisma graphql subscription in a node app using the prisma-client
? I would also, like to convert this to rxjs
instead of using promises
. I just prefer Observables
.
typescript rxjs graphql prisma async-iterator
I am following this guide. I am trying to listen to a graphQL subscription in my node app. I am having a lot of trouble implementing that subscription. I have a tried a few different ways, listed below, none of them are working.
// converted to rxjs observables
from(PrismaClient.$subscribe.priority(
mutation_in: "CREATED"
)).subscribe(
(next) =>
console.log("next", next);
,
() =>
console.log("error");
,
() =>
console.log("complete");
);
// as promise
PrismaClient.$subscribe.priority(
mutation_in: "CREATED"
).then(
(next) =>
console.log("next", next);
);
Both of these just return in the next:
next: [Function: next],
return: [Function: return],
throw: [Function: throw],
'@@asyncIterator': [Function]
I would expect it to return the priority
that was created any time a new one is created. However, it only returns one time and immediately completes and returns that object i listed above.
I understand this has something to do with it returning back an Promise<AsyncIterator<...>>
, but i am not sure how to solve this issue.
How do i create a prisma graphql subscription in a node app using the prisma-client
? I would also, like to convert this to rxjs
instead of using promises
. I just prefer Observables
.
typescript rxjs graphql prisma async-iterator
typescript rxjs graphql prisma async-iterator
asked Nov 8 at 19:55
prolink007
20.1k1697158
20.1k1697158
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
up vote
1
down vote
accepted
Here's a suggestion with Promises and async/await:
const main = async () =>
const subscription = await PrismaClient.$subscribe.priority(
mutation_in: 'CREATED',
)
handleSubscription(subscription)
const handleSubscription = async (subscription) =>
const result = await subscription.next()
console.log('do stuff with', result.value)
if (!result.done)
console.log('handle again')
handleSubscription(subscription)
else
console.log('done')
main().catch(e => console.error(e))
This works, but is there a way to convert this toObservables
?
– prolink007
Nov 9 at 15:18
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
1
down vote
accepted
Here's a suggestion with Promises and async/await:
const main = async () =>
const subscription = await PrismaClient.$subscribe.priority(
mutation_in: 'CREATED',
)
handleSubscription(subscription)
const handleSubscription = async (subscription) =>
const result = await subscription.next()
console.log('do stuff with', result.value)
if (!result.done)
console.log('handle again')
handleSubscription(subscription)
else
console.log('done')
main().catch(e => console.error(e))
This works, but is there a way to convert this toObservables
?
– prolink007
Nov 9 at 15:18
add a comment |
up vote
1
down vote
accepted
Here's a suggestion with Promises and async/await:
const main = async () =>
const subscription = await PrismaClient.$subscribe.priority(
mutation_in: 'CREATED',
)
handleSubscription(subscription)
const handleSubscription = async (subscription) =>
const result = await subscription.next()
console.log('do stuff with', result.value)
if (!result.done)
console.log('handle again')
handleSubscription(subscription)
else
console.log('done')
main().catch(e => console.error(e))
This works, but is there a way to convert this toObservables
?
– prolink007
Nov 9 at 15:18
add a comment |
up vote
1
down vote
accepted
up vote
1
down vote
accepted
Here's a suggestion with Promises and async/await:
const main = async () =>
const subscription = await PrismaClient.$subscribe.priority(
mutation_in: 'CREATED',
)
handleSubscription(subscription)
const handleSubscription = async (subscription) =>
const result = await subscription.next()
console.log('do stuff with', result.value)
if (!result.done)
console.log('handle again')
handleSubscription(subscription)
else
console.log('done')
main().catch(e => console.error(e))
Here's a suggestion with Promises and async/await:
const main = async () =>
const subscription = await PrismaClient.$subscribe.priority(
mutation_in: 'CREATED',
)
handleSubscription(subscription)
const handleSubscription = async (subscription) =>
const result = await subscription.next()
console.log('do stuff with', result.value)
if (!result.done)
console.log('handle again')
handleSubscription(subscription)
else
console.log('done')
main().catch(e => console.error(e))
answered Nov 9 at 10:07
nuno
384
384
This works, but is there a way to convert this toObservables
?
– prolink007
Nov 9 at 15:18
add a comment |
This works, but is there a way to convert this toObservables
?
– prolink007
Nov 9 at 15:18
This works, but is there a way to convert this to
Observables
?– prolink007
Nov 9 at 15:18
This works, but is there a way to convert this to
Observables
?– prolink007
Nov 9 at 15:18
add a comment |
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53215215%2fhow-to-use-a-prisma-graphql-subscription-in-node-app%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown