Разница между партией и обещаниями - PullRequest
0 голосов
/ 07 мая 2018

Когда я хочу сделать несколько записей, удалений или обновлений в Cloud Firestore из Cloud Functions, я обычно делаю это с обещаниями:

var proms = []
proms.push(sometask)
return Promises.all(proms)

Однако я сталкивался с партиями: https://firebase.google.com/docs/firestore/manage-data/transactions#batched-writes

Я думаю, это будет выглядеть так:

var batch = db.batch();
batch.update(sometask)
return batch.commit();

В чем разница между этими двумя?

1 Ответ

0 голосов
/ 07 мая 2018

Когда вы выполняете Promise.all для ряда операций, эти операции по-прежнему отправляются на сервер одну за другой. Каждая операция может завершиться неудачей индивидуально, в то время как другие будут выполнены успешно.

Когда вы используете пакетную запись (или транзакцию), ваши операции отправляются на сервер одной командой. Это означает, что все они либо потерпят неудачу, либо все преуспеют.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...