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一起使用,而不能与任何其他异步代码一起使用?