Есть ли вызов API чередования, который мы можем использовать для создания пользователя, если он не существует, и извлечения нового пользователя?
говорят, что мы делаем это:
export const createCustomer = function (email: string) {
return stripe.customers.create({email});
};
, даже если пользователь с таким адресом электронной почты уже существует, он всегда будет создавать новый идентификатор клиента. Есть ли метод, который создаст пользователя, только если электронная почта пользователя не существует в полосе?
Я просто хочу избежать условия гонки , когда в один и тот же период времени может происходить более одного stripe.customers.create({email})
вызова. Например, мы проверяем, существует ли customer.id и не существует, два разных запроса к серверу могут попытаться создать нового клиента.
Вот условие гонки:
const email = 'foo@example.com';
Promise.all([
stripe.customers.retrieve(email).then(function(user){
if(!user){
return stripe.customers.create(email);
}
},
stripe.customers.retrieve(email).then(function(user){
if(!user){
return stripe.customers.create(email);
}
}
])
очевидно, что состояние гонки более вероятно может возникнуть в двух разных процессах или двух разных запросах к серверу, чем в одном и том же запросе к серверу, но вы поняли идею.