@@ -529,6 +529,11 @@ newDeferUsages, path, deferMap, incrementalDataRecord):
529
529
- Return {newDeferredFragmentRecords}, {newDeferMap}, and
530
530
{newDeferredGroupedFieldSetRecords}.
531
531
532
+ IntroduceSubsequentResult(publisherRecord, subsequentResult):
533
+
534
+ - Let {pending} be the corresponding entry on {publisherRecord}.
535
+ - Add {subsequentResult} to {pending}.
536
+
532
537
GetParentTarget(deferUsage, deferMap):
533
538
534
539
- Let {ancestors} be the corresponding entry on {deferUsage}.
@@ -615,6 +620,13 @@ CompleteEmptyDeferredFragmentRecords(publisherRecord, deferredFragmentRecord):
615
620
- Set {isCompleted} on {deferredFragmentRecord} to {true}.
616
621
- Call {ReleaseSubsequentResult(publisherRecord, deferredFragmentRecord)}.
617
622
623
+ ReleaseSubsequentResult(publisherRecord, subsequentResult):
624
+
625
+ - Let {released} and {pending} be the corresponding entries on
626
+ {publisherRecord}.
627
+ - If {subsequentResult} is not within {pending}, return.
628
+ - Add {subsequentResult} to {released}.
629
+
618
630
#### Complete Deferred Grouped Field Set Record
619
631
620
632
CompleteDeferredGroupedFieldSet(publisherRecord, deferredGroupedFieldSetRecord,
@@ -669,35 +681,6 @@ MarkErroredStreamItemsRecord(publisherRecord, streamItemsRecord, errors):
669
681
- Set {isCompleted} on {streamItemsRecord} to {true}.
670
682
- Call {ReleaseSubsequentResult(publisherRecord, streamItemsRecord)}.
671
683
672
- #### Introduce Subsequent Result
673
-
674
- IntroduceSubsequentResult(publisherRecord, subsequentResult):
675
-
676
- - Let {pending} be the corresponding entry on {publisherRecord}.
677
- - Add {subsequentResult} to {pending}.
678
-
679
- #### Release Subsequent Result
680
-
681
- ReleaseSubsequentResult(publisherRecord, subsequentResult):
682
-
683
- - Let {released} and {pending} be the corresponding entries on
684
- {publisherRecord}.
685
- - If {subsequentResult} is not within {pending}, return.
686
- - Add {subsequentResult} to {released}.
687
-
688
- #### Publish Subsequent Result
689
-
690
- PublishSubsequentResult(publisherRecord, subsequentResult):
691
-
692
- - Let {isCompleted} be the corresponding entry on {subsequentResult}.
693
- - If {isCompleted} is {true}:
694
- - Let {released}, {pending}, and {signal} be the corresponding entries on
695
- {publisherRecord}.
696
- - Add {subsequentResult} to both {released} and {pending}.
697
- - Trigger {signal}.
698
- - Otherwise:
699
- - Call {IntroduceSubsequentResult(publisherRecord, subsequentResult)}.
700
-
701
684
#### Yield Results
702
685
703
686
If an operation contains subsequent result records resulting from ` @stream ` or
@@ -812,6 +795,17 @@ GenerateSubsequentResponse(publisherRecord, current):
812
795
- Set the corresponding entry on {subsequentResult} to {completed}.
813
796
- Return {subsequentResult}.
814
797
798
+ PublishSubsequentResult(publisherRecord, subsequentResult):
799
+
800
+ - Let {isCompleted} be the corresponding entry on {subsequentResult}.
801
+ - If {isCompleted} is {true}:
802
+ - Let {released}, {pending}, and {signal} be the corresponding entries on
803
+ {publisherRecord}.
804
+ - Add {subsequentResult} to both {released} and {pending}.
805
+ - Trigger {signal}.
806
+ - Otherwise:
807
+ - Call {IntroduceSubsequentResult(publisherRecord, subsequentResult)}.
808
+
815
809
PendingRecordsToResults(records):
816
810
817
811
- Initialize {pendingResults} to an empty list.
0 commit comments