Установка параметра функции внутри, затем блок с пожарным депо - PullRequest
0 голосов
/ 06 ноября 2018

Поэтому я пытаюсь установить параметр объекта внутри блока then при работе с firestore, но по какой-то причине он не устанавливается. Что-то не так с моим синтаксисом? Я подумал, что использование => позволит мне сделать это.

updateLedger(id: string, data: any) {
    this.afs.collection('chartofaccounts').doc(id).ref.get().then(doc => {
      if (doc.data().normalside === 'debit') {
        ///// set the runningBalance of the data object passed into the function here
        data.runningBalance = doc.data().debitAmount - doc.data().creditAmount;
      } else {
        ///// or here...
        data.runningBalance = doc.data().creditAmount - doc.data().debitAmount;
      }
    });
    return this.afs.collection('ledger').add(data);
  }

1 Ответ

0 голосов
/ 06 ноября 2018

Это возможный способ сделать это, но я не уверен, что вам действительно нужен обратный вызов, важно подумать только о добавлении this.afs.collection('ledger').add(data); этой строки в .then, когда обещание разрешено (асинхронно). Я также поставил вам обратный вызов, чтобы проверить, является ли это полезным.

updateLedger(id: string, data: any, callback: function) {
  this.afs.collection('chartofaccounts').doc(id).ref.get().then(doc => {
    if (doc.data().normalside === 'debit') {
      ///// set the runningBalance of the data object passed into the function here
      data.runningBalance = doc.data().debitAmount - doc.data().creditAmount;

      // You set it here maybe you don't even need the callback
      this.afs.collection('ledger').add(data);
      callback(data);
    } else {
      ///// or here...
      data.runningBalance = doc.data().creditAmount - doc.data().debitAmount;

      // You set it here maybe you don't even need the callback
      this.afs.collection('ledger').add(data);
      callback(data);
    }
  });
}

// In the call you receive the result
updateLedger(id, data, (resultData) => {
  console.log(resultData)
})

Убедитесь, что then вызывается, если нет, добавьте оператор .catch, возможно, есть другие проблемы ...

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