我希望创建认知用户,并将用户分配给用户组,同时使用。当你必须创造一个可观察的,这对我来说是好的。但当有必要创造一个可观察的,提出两个要求,我不工作。我认为我们需要使用forkJoin或flatMap。我使用角7,所以RxJs 6.x。
创建代码OK:
createUser(user: User): Observable<User[]> {
const _self = this;
const cognitoidentityserviceprovider = new AWSCognito.CognitoIdentityServiceProvider({
credentials: this.getCognitoCreds()
});
const params = {
UserPoolId: this.poolData.UserPoolId,
Username: user.username,
DesiredDeliveryMediums: [ 'EMAIL' ],
ForceAliasCreation: false,
MessageAction: 'SUPPRESS',
TemporaryPassword: '1234fooo*',
UserAttributes: [
{
Name: 'email',
Value: user.email
}
]
};
return Observable.create(obs => {
cognitoidentityserviceprovider.adminCreateUser(params, function(error, data) {
if (error) {
console.log(error);
return Observable.throw(error || 'Server error');
} else {
console.log(data);
//
//
// HERE user is create :)
// I want add to group here (see code down in this post)
//
//
return obs.next(data);
}
});
});
}添加组代码OK:
const p = {
GroupName: 'admin',
UserPoolId: _self.poolData.UserPoolId,
Username: user.username
};
return Observable.create(o => {
cognitoidentityserviceprovider.adminAddUserToGroup(p, function(err, d) {
if (err) {
console.log(err);
return Observable.throw(err || 'Server error');
} else {
console.log(d);
return o.next(d);
}
});
});发布于 2019-02-13 16:02:16
我将第一个可观测值放在const中,然后返回可观测的.pipe(mergeMap((u: CognitoUser) => {2nd observable} )
createUser(user: User): Observable<User[]> {
const _self = this;
const cognitoidentityserviceprovider = new AWSCognito.CognitoIdentityServiceProvider({
credentials: this.getCognitoCreds()
});
const params = {
UserPoolId: this.poolData.UserPoolId,
Username: user.username,
DesiredDeliveryMediums: [ 'EMAIL' ],
ForceAliasCreation: false,
MessageAction: 'SUPPRESS',
TemporaryPassword: '1234Fooo*',
UserAttributes: [
{
Name: 'email',
Value: user.email
}
]
};
const o = Observable.create(obs => {
cognitoidentityserviceprovider.adminCreateUser(params, function(error, data) {
if (error) {
console.log(error);
return Observable.throw(error || 'Server error');
} else {
console.log(data);
return obs.next(data.User);
}
});
});
return o.pipe(mergeMap((u: CognitoUser) => {
const p = {
GroupName: 'admin',
UserPoolId: _self.poolData.UserPoolId,
Username: u.Username
};
return Observable.create(ob => {
cognitoidentityserviceprovider.adminAddUserToGroup(p, function(err, d) {
if (err) {
console.log(err);
return Observable.throw(err || 'Server error');
} else {
console.log(d);
return ob.next(d);
}
});
});
}));
}https://stackoverflow.com/questions/54672829
复制相似问题