How to enforce order http requests on a list of observables in Angular 7










0














I need to get a list of Id's ids => this.getIds() and get their names
=> getNames(id) for each id in the list of ids using mergeMap().
Can someone please check what I'm doing wrong below (it fails to compile)?



in, myservice.ts:



getIds()<any> 
this.http
.post(url1, '')
.subscribe(map(( Ids : any) => Ids.map(item => (Id: item.Id, Name: item.Name ))));

getNames():Observable<any>
return this.http
.post(url2, '')
.pipe(map(( Names : any) => Names.map(item => (Sid: item.Id, Name: item.Name ))));



in, component.ts:



 getIds(): void 
this.myservice
.getIds.pipe(
mergeMap(id => this.getNames(id)),
mergeMap(names => names),
toArray()
)

getNames(): void
this.myservice
.getNames(ids)
.subscribe(val => this.data = val);










share|improve this question























  • What is the error message you get during compilation?
    – user184994
    Nov 9 at 22:24










  • the line 44 is the last line in the file. Module parse failed: Unexpected token (44:17) You may need an appropriate loader to handle this file type. | });
    – anglee
    Nov 9 at 22:30










  • In which file? And which line is it in the code snippets you've added?
    – user184994
    Nov 9 at 22:32










  • sorry; it's the myservice.ts. the last line is the end of the snippet.
    – anglee
    Nov 9 at 22:33
















0














I need to get a list of Id's ids => this.getIds() and get their names
=> getNames(id) for each id in the list of ids using mergeMap().
Can someone please check what I'm doing wrong below (it fails to compile)?



in, myservice.ts:



getIds()<any> 
this.http
.post(url1, '')
.subscribe(map(( Ids : any) => Ids.map(item => (Id: item.Id, Name: item.Name ))));

getNames():Observable<any>
return this.http
.post(url2, '')
.pipe(map(( Names : any) => Names.map(item => (Sid: item.Id, Name: item.Name ))));



in, component.ts:



 getIds(): void 
this.myservice
.getIds.pipe(
mergeMap(id => this.getNames(id)),
mergeMap(names => names),
toArray()
)

getNames(): void
this.myservice
.getNames(ids)
.subscribe(val => this.data = val);










share|improve this question























  • What is the error message you get during compilation?
    – user184994
    Nov 9 at 22:24










  • the line 44 is the last line in the file. Module parse failed: Unexpected token (44:17) You may need an appropriate loader to handle this file type. | });
    – anglee
    Nov 9 at 22:30










  • In which file? And which line is it in the code snippets you've added?
    – user184994
    Nov 9 at 22:32










  • sorry; it's the myservice.ts. the last line is the end of the snippet.
    – anglee
    Nov 9 at 22:33














0












0








0







I need to get a list of Id's ids => this.getIds() and get their names
=> getNames(id) for each id in the list of ids using mergeMap().
Can someone please check what I'm doing wrong below (it fails to compile)?



in, myservice.ts:



getIds()<any> 
this.http
.post(url1, '')
.subscribe(map(( Ids : any) => Ids.map(item => (Id: item.Id, Name: item.Name ))));

getNames():Observable<any>
return this.http
.post(url2, '')
.pipe(map(( Names : any) => Names.map(item => (Sid: item.Id, Name: item.Name ))));



in, component.ts:



 getIds(): void 
this.myservice
.getIds.pipe(
mergeMap(id => this.getNames(id)),
mergeMap(names => names),
toArray()
)

getNames(): void
this.myservice
.getNames(ids)
.subscribe(val => this.data = val);










share|improve this question















I need to get a list of Id's ids => this.getIds() and get their names
=> getNames(id) for each id in the list of ids using mergeMap().
Can someone please check what I'm doing wrong below (it fails to compile)?



in, myservice.ts:



getIds()<any> 
this.http
.post(url1, '')
.subscribe(map(( Ids : any) => Ids.map(item => (Id: item.Id, Name: item.Name ))));

getNames():Observable<any>
return this.http
.post(url2, '')
.pipe(map(( Names : any) => Names.map(item => (Sid: item.Id, Name: item.Name ))));



in, component.ts:



 getIds(): void 
this.myservice
.getIds.pipe(
mergeMap(id => this.getNames(id)),
mergeMap(names => names),
toArray()
)

getNames(): void
this.myservice
.getNames(ids)
.subscribe(val => this.data = val);







javascript angular http angular7






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Dec 3 at 15:18









Goncalo Peres

1,3091317




1,3091317










asked Nov 9 at 22:23









anglee

104




104











  • What is the error message you get during compilation?
    – user184994
    Nov 9 at 22:24










  • the line 44 is the last line in the file. Module parse failed: Unexpected token (44:17) You may need an appropriate loader to handle this file type. | });
    – anglee
    Nov 9 at 22:30










  • In which file? And which line is it in the code snippets you've added?
    – user184994
    Nov 9 at 22:32










  • sorry; it's the myservice.ts. the last line is the end of the snippet.
    – anglee
    Nov 9 at 22:33

















  • What is the error message you get during compilation?
    – user184994
    Nov 9 at 22:24










  • the line 44 is the last line in the file. Module parse failed: Unexpected token (44:17) You may need an appropriate loader to handle this file type. | });
    – anglee
    Nov 9 at 22:30










  • In which file? And which line is it in the code snippets you've added?
    – user184994
    Nov 9 at 22:32










  • sorry; it's the myservice.ts. the last line is the end of the snippet.
    – anglee
    Nov 9 at 22:33
















What is the error message you get during compilation?
– user184994
Nov 9 at 22:24




What is the error message you get during compilation?
– user184994
Nov 9 at 22:24












the line 44 is the last line in the file. Module parse failed: Unexpected token (44:17) You may need an appropriate loader to handle this file type. | });
– anglee
Nov 9 at 22:30




the line 44 is the last line in the file. Module parse failed: Unexpected token (44:17) You may need an appropriate loader to handle this file type. | });
– anglee
Nov 9 at 22:30












In which file? And which line is it in the code snippets you've added?
– user184994
Nov 9 at 22:32




In which file? And which line is it in the code snippets you've added?
– user184994
Nov 9 at 22:32












sorry; it's the myservice.ts. the last line is the end of the snippet.
– anglee
Nov 9 at 22:33





sorry; it's the myservice.ts. the last line is the end of the snippet.
– anglee
Nov 9 at 22:33













2 Answers
2






active

oldest

votes


















0














You're not returning anything from getNames method of component, which should ideally return an Observable



getNames(): void 
return this.myservice
.getNames(ids)






share|improve this answer




























    0














    You need to change the signature of your getIds function from:



    getIds()<any> 


    to



    getIds(): any





    share|improve this answer




















    • With this change, I get the following: ERROR in idtable.component.ts(128,20): error TS2339: Property 'pipe' does not exist on type '() => any'. idtable.component.ts(129,34): error TS2345: Argument of type '' is not assignable to parameter of type 'Ids'.
      – anglee
      Nov 9 at 23:06










    • Oh sorry in that case change it to getIds: Observable<any>
      – user184994
      Nov 10 at 8:09











    • The issue left is with the line mergeMap(names => names), The compile error is, ` 70% building modules 676/676 modules 0 activeERROR in src/app/mcomponent.ts(132,19): error TS2345: Argument of type '(names: ) => ' is not assignable to parameter of type '(value: , index: number) => ObservableInput<>'. Type '' is not assignable to type 'ObservableInput<>'. Type '' is not assignable to type 'Iterable<>'. Property '[Symbol.iterator]' is missing in type ''.`
      – anglee
      Nov 10 at 15:39











    Your Answer






    StackExchange.ifUsing("editor", function ()
    StackExchange.using("externalEditor", function ()
    StackExchange.using("snippets", function ()
    StackExchange.snippets.init();
    );
    );
    , "code-snippets");

    StackExchange.ready(function()
    var channelOptions =
    tags: "".split(" "),
    id: "1"
    ;
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function()
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled)
    StackExchange.using("snippets", function()
    createEditor();
    );

    else
    createEditor();

    );

    function createEditor()
    StackExchange.prepareEditor(
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader:
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    ,
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    );



    );













    draft saved

    draft discarded


















    StackExchange.ready(
    function ()
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53234040%2fhow-to-enforce-order-http-requests-on-a-list-of-observables-in-angular-7%23new-answer', 'question_page');

    );

    Post as a guest















    Required, but never shown

























    2 Answers
    2






    active

    oldest

    votes








    2 Answers
    2






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    You're not returning anything from getNames method of component, which should ideally return an Observable



    getNames(): void 
    return this.myservice
    .getNames(ids)






    share|improve this answer

























      0














      You're not returning anything from getNames method of component, which should ideally return an Observable



      getNames(): void 
      return this.myservice
      .getNames(ids)






      share|improve this answer























        0












        0








        0






        You're not returning anything from getNames method of component, which should ideally return an Observable



        getNames(): void 
        return this.myservice
        .getNames(ids)






        share|improve this answer












        You're not returning anything from getNames method of component, which should ideally return an Observable



        getNames(): void 
        return this.myservice
        .getNames(ids)







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 9 at 22:33









        Pankaj Parkar

        111k15158234




        111k15158234























            0














            You need to change the signature of your getIds function from:



            getIds()<any> 


            to



            getIds(): any





            share|improve this answer




















            • With this change, I get the following: ERROR in idtable.component.ts(128,20): error TS2339: Property 'pipe' does not exist on type '() => any'. idtable.component.ts(129,34): error TS2345: Argument of type '' is not assignable to parameter of type 'Ids'.
              – anglee
              Nov 9 at 23:06










            • Oh sorry in that case change it to getIds: Observable<any>
              – user184994
              Nov 10 at 8:09











            • The issue left is with the line mergeMap(names => names), The compile error is, ` 70% building modules 676/676 modules 0 activeERROR in src/app/mcomponent.ts(132,19): error TS2345: Argument of type '(names: ) => ' is not assignable to parameter of type '(value: , index: number) => ObservableInput<>'. Type '' is not assignable to type 'ObservableInput<>'. Type '' is not assignable to type 'Iterable<>'. Property '[Symbol.iterator]' is missing in type ''.`
              – anglee
              Nov 10 at 15:39
















            0














            You need to change the signature of your getIds function from:



            getIds()<any> 


            to



            getIds(): any





            share|improve this answer




















            • With this change, I get the following: ERROR in idtable.component.ts(128,20): error TS2339: Property 'pipe' does not exist on type '() => any'. idtable.component.ts(129,34): error TS2345: Argument of type '' is not assignable to parameter of type 'Ids'.
              – anglee
              Nov 9 at 23:06










            • Oh sorry in that case change it to getIds: Observable<any>
              – user184994
              Nov 10 at 8:09











            • The issue left is with the line mergeMap(names => names), The compile error is, ` 70% building modules 676/676 modules 0 activeERROR in src/app/mcomponent.ts(132,19): error TS2345: Argument of type '(names: ) => ' is not assignable to parameter of type '(value: , index: number) => ObservableInput<>'. Type '' is not assignable to type 'ObservableInput<>'. Type '' is not assignable to type 'Iterable<>'. Property '[Symbol.iterator]' is missing in type ''.`
              – anglee
              Nov 10 at 15:39














            0












            0








            0






            You need to change the signature of your getIds function from:



            getIds()<any> 


            to



            getIds(): any





            share|improve this answer












            You need to change the signature of your getIds function from:



            getIds()<any> 


            to



            getIds(): any






            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered Nov 9 at 22:42









            user184994

            11k11627




            11k11627











            • With this change, I get the following: ERROR in idtable.component.ts(128,20): error TS2339: Property 'pipe' does not exist on type '() => any'. idtable.component.ts(129,34): error TS2345: Argument of type '' is not assignable to parameter of type 'Ids'.
              – anglee
              Nov 9 at 23:06










            • Oh sorry in that case change it to getIds: Observable<any>
              – user184994
              Nov 10 at 8:09











            • The issue left is with the line mergeMap(names => names), The compile error is, ` 70% building modules 676/676 modules 0 activeERROR in src/app/mcomponent.ts(132,19): error TS2345: Argument of type '(names: ) => ' is not assignable to parameter of type '(value: , index: number) => ObservableInput<>'. Type '' is not assignable to type 'ObservableInput<>'. Type '' is not assignable to type 'Iterable<>'. Property '[Symbol.iterator]' is missing in type ''.`
              – anglee
              Nov 10 at 15:39

















            • With this change, I get the following: ERROR in idtable.component.ts(128,20): error TS2339: Property 'pipe' does not exist on type '() => any'. idtable.component.ts(129,34): error TS2345: Argument of type '' is not assignable to parameter of type 'Ids'.
              – anglee
              Nov 9 at 23:06










            • Oh sorry in that case change it to getIds: Observable<any>
              – user184994
              Nov 10 at 8:09











            • The issue left is with the line mergeMap(names => names), The compile error is, ` 70% building modules 676/676 modules 0 activeERROR in src/app/mcomponent.ts(132,19): error TS2345: Argument of type '(names: ) => ' is not assignable to parameter of type '(value: , index: number) => ObservableInput<>'. Type '' is not assignable to type 'ObservableInput<>'. Type '' is not assignable to type 'Iterable<>'. Property '[Symbol.iterator]' is missing in type ''.`
              – anglee
              Nov 10 at 15:39
















            With this change, I get the following: ERROR in idtable.component.ts(128,20): error TS2339: Property 'pipe' does not exist on type '() => any'. idtable.component.ts(129,34): error TS2345: Argument of type '' is not assignable to parameter of type 'Ids'.
            – anglee
            Nov 9 at 23:06




            With this change, I get the following: ERROR in idtable.component.ts(128,20): error TS2339: Property 'pipe' does not exist on type '() => any'. idtable.component.ts(129,34): error TS2345: Argument of type '' is not assignable to parameter of type 'Ids'.
            – anglee
            Nov 9 at 23:06












            Oh sorry in that case change it to getIds: Observable<any>
            – user184994
            Nov 10 at 8:09





            Oh sorry in that case change it to getIds: Observable<any>
            – user184994
            Nov 10 at 8:09













            The issue left is with the line mergeMap(names => names), The compile error is, ` 70% building modules 676/676 modules 0 activeERROR in src/app/mcomponent.ts(132,19): error TS2345: Argument of type '(names: ) => ' is not assignable to parameter of type '(value: , index: number) => ObservableInput<>'. Type '' is not assignable to type 'ObservableInput<>'. Type '' is not assignable to type 'Iterable<>'. Property '[Symbol.iterator]' is missing in type ''.`
            – anglee
            Nov 10 at 15:39





            The issue left is with the line mergeMap(names => names), The compile error is, ` 70% building modules 676/676 modules 0 activeERROR in src/app/mcomponent.ts(132,19): error TS2345: Argument of type '(names: ) => ' is not assignable to parameter of type '(value: , index: number) => ObservableInput<>'. Type '' is not assignable to type 'ObservableInput<>'. Type '' is not assignable to type 'Iterable<>'. Property '[Symbol.iterator]' is missing in type ''.`
            – anglee
            Nov 10 at 15:39


















            draft saved

            draft discarded
















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid


            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.

            To learn more, see our tips on writing great answers.





            Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


            Please pay close attention to the following guidance:


            • Please be sure to answer the question. Provide details and share your research!

            But avoid


            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.

            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53234040%2fhow-to-enforce-order-http-requests-on-a-list-of-observables-in-angular-7%23new-answer', 'question_page');

            );

            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







            Popular posts from this blog

            𛂒𛀶,𛀽𛀑𛂀𛃧𛂓𛀙𛃆𛃑𛃷𛂟𛁡𛀢𛀟𛁤𛂽𛁕𛁪𛂟𛂯,𛁞𛂧𛀴𛁄𛁠𛁼𛂿𛀤 𛂘,𛁺𛂾𛃭𛃭𛃵𛀺,𛂣𛃍𛂖𛃶 𛀸𛃀𛂖𛁶𛁏𛁚 𛂢𛂞 𛁰𛂆𛀔,𛁸𛀽𛁓𛃋𛂇𛃧𛀧𛃣𛂐𛃇,𛂂𛃻𛃲𛁬𛃞𛀧𛃃𛀅 𛂭𛁠𛁡𛃇𛀷𛃓𛁥,𛁙𛁘𛁞𛃸𛁸𛃣𛁜,𛂛,𛃿,𛁯𛂘𛂌𛃛𛁱𛃌𛂈𛂇 𛁊𛃲,𛀕𛃴𛀜 𛀶𛂆𛀶𛃟𛂉𛀣,𛂐𛁞𛁾 𛁷𛂑𛁳𛂯𛀬𛃅,𛃶𛁼

            Edmonton

            Crossroads (UK TV series)