Код: Выделить всё
return new Promise((resolve, reject) => {
this.organizationController
.send(CREATE_ORGANIZATION, organizationEvent)
.pipe(
switchMap((org) => {
if (org === null) {
reject(new UnprocessableEntityException());
}
const organizationUserEvent: OrganizationUserEventDto = {
dto: {
userId: user.id,
organizationId: org.id,
role: Role.SUPER,
},
};
return this.organizationController.send(
CREATE_ORGANIZATION_USER,
organizationUserEvent,
);
}),
)
.subscribe({
next: (data) => {
resolve(data);
},
error: (e) => {
reject(e);
},
});
});
Код: Выделить всё
return new Promise((resolve, reject) => {
this.organizationController
.send(CREATE_ORGANIZATION, organizationEvent)
.pipe(
mergeMap((org) => {
if (org === null) {
reject(new UnprocessableEntityException());
}
const organizationUserEvent: OrganizationUserEventDto = {
dto: {
userId: user.id,
organizationId: org.id,
role: Role.SUPER,
},
};
return this.organizationController
.send(CREATE_ORGANIZATION_USER, organizationUserEvent)
.pipe(
map(() => {
return { org: org };
}),
);
}),
)
.subscribe({
next: ({ org: org }) => {
resolve(org);
},
error: (e) => {
reject(e);
},
});
});
< /code>
Я также попытался использовать withlatestfrom с приведенным ниже расположением, и это вызвало первый вызов API дважды и не работал. < /p>
return new Promise((resolve, reject) => {
const $org = this.organizationController.send(
CREATE_ORGANIZATION,
organizationEvent,
);
$org
.pipe(
mergeMap((org) =>
this.organizationController.send(CREATE_ORGANIZATION_USER, {
userId: user.id,
organizationId: org.id,
role: Role.SUPER,
}),
),
withLatestFrom($org),
)
.subscribe({
next: ([data, org]) => {
resolve(data);
},
error: (e) => {
reject(e);
},
});
});
Подробнее здесь: https://stackoverflow.com/questions/793 ... in-a-steam