3
我有一個HTTP觸發函數,每次調用端點時都會返回一個增量數。代碼如下所示:如何確保函數的執行順序?
export const reserve = functions.https.onRequest((req, resp) => {
cors(req, resp, async() => {
if (req.method.toLowerCase() !== 'post') {
resp.status(405);
resp.end();
} else {
const path = `counter`;
const ref = firebase.database().ref(path);
const oldCount = (await ref.once('value')).val();
await ref.set(oldCount + 1);
resp.status(200).send({
number: oldCount
});
resp.end();
}
});
});
問題是,如果2個調用是非常接近對方,有沒有機會,該函數可以返回相同的號碼?如果是這樣,有沒有辦法來防止這種情況?
因爲JavaScript是單線程的,因此它可以可以給同一個號碼。 –