【发布时间】:2020-06-10 22:25:25
【问题描述】:
我有一个函数 setClaims,它只是为当前交易设置声明。我需要创建一个辅助函数来检查是否提供了 uuid,设置声明并返回事务对象。像这样的:
export const useAuthTransaction = async (
kx: Knex,
setClaims: (tx: Knex.Transaction, uuid?: string) => Promise<any>,
uuid?: string,
): Promise<Knex.Transaction> => {
if (!uuid) {
throw { errorCodes: [RemoveQuestionErrorCode.Unauthorized] };
}
return kx.transaction(async tx => {
await setClaims(tx);
return tx;
});
};
但是当我尝试在解析器中使用它时:
useAuthTransaction(kx, setClaims, claims?.uid).then(async tx =>
dataSources.questionAPI.update(tx, input));
上面写着:
交易查询已经完成
如何解决事务上下文而不关闭它?
【问题讨论】:
标签: node.js apollo knex.js apollo-server