Javascript done()函数的含义

Javascript done()函数的含义,javascript,reactjs,Javascript,Reactjs,让我们假设您有以下操作 export const startAddExpense = (expenseData = {}) => { return (dispatch) => { const { description = '', note = '', amount = 0, createdAt = 0 } = expenseData; const expense = { description, note,

让我们假设您有以下操作

export const startAddExpense = (expenseData = {}) => {
  return (dispatch) => {
    const {
      description = '',
      note = '',
      amount = 0,
      createdAt = 0
    } = expenseData;
    const expense = { description, note, amount, createdAt };

    return database.ref('expenses').push(expense).then((ref) => {
      dispatch(addExpense({
        id: ref.key,
        ...expense
      }));
    });
  };
};
我将费用数据存储到一个数据库(在我的例子中是firebase),然后我将addExpense函数发送到存储

这里是对它的测试

test('should add expense to database and store', (done) => {
    const store = createMockStore({});
    const expenseData = {
      description: 'Mouse',
      amount: 3000,
      note: 'This one is better',
      createdAt: 1000
    };

    store.dispatch(startAddExpense(expenseData)).then(() => {
      expect(1).toBe(1);
      done();
    });
});
done()函数的含义是什么?这是否意味着回调函数应等待firebase数据库中的数据插入完成

谢谢,
西奥

完成
意味着您的测试函数具有异步代码。因此,当您得到异步结果时,应该手动调用
done
。此外,异步测试还有第三个参数,用于定义函数失败后的超时。

我以为这是来自Mocha(或任何您的测试框架)。ReactJS在这里相关吗?@VLAZ是的。好的,那么
done
只能与React一起使用,而不能与任何其他异步代码一起使用?