How to enforce order http requests on a list of observables in Angular 7
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
add a comment |
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
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
add a comment |
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
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
javascript angular http angular7
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
add a comment |
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
add a comment |
2 Answers
2
active
oldest
votes
You're not returning anything from getNames
method of component, which should ideally return an Observable
getNames(): void
return this.myservice
.getNames(ids)
add a comment |
You need to change the signature of your getIds function from:
getIds()<any>
to
getIds(): any
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 togetIds: Observable<any>
– user184994
Nov 10 at 8:09
The issue left is with the linemergeMap(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
add a comment |
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
);
);
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%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
You're not returning anything from getNames
method of component, which should ideally return an Observable
getNames(): void
return this.myservice
.getNames(ids)
add a comment |
You're not returning anything from getNames
method of component, which should ideally return an Observable
getNames(): void
return this.myservice
.getNames(ids)
add a comment |
You're not returning anything from getNames
method of component, which should ideally return an Observable
getNames(): void
return this.myservice
.getNames(ids)
You're not returning anything from getNames
method of component, which should ideally return an Observable
getNames(): void
return this.myservice
.getNames(ids)
answered Nov 9 at 22:33
Pankaj Parkar
111k15158234
111k15158234
add a comment |
add a comment |
You need to change the signature of your getIds function from:
getIds()<any>
to
getIds(): any
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 togetIds: Observable<any>
– user184994
Nov 10 at 8:09
The issue left is with the linemergeMap(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
add a comment |
You need to change the signature of your getIds function from:
getIds()<any>
to
getIds(): any
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 togetIds: Observable<any>
– user184994
Nov 10 at 8:09
The issue left is with the linemergeMap(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
add a comment |
You need to change the signature of your getIds function from:
getIds()<any>
to
getIds(): any
You need to change the signature of your getIds function from:
getIds()<any>
to
getIds(): any
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 togetIds: Observable<any>
– user184994
Nov 10 at 8:09
The issue left is with the linemergeMap(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
add a comment |
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 togetIds: Observable<any>
– user184994
Nov 10 at 8:09
The issue left is with the linemergeMap(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
add a comment |
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.
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%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
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
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