Javascript 创建新承诺,而不是使用then()JS
我使用nexus是为了我的数据库,但我有一个问题,这个问题通常也适用于JS/TSJavascript 创建新承诺,而不是使用then()JS,javascript,typescript,knex.js,Javascript,Typescript,Knex.js,我使用nexus是为了我的数据库,但我有一个问题,这个问题通常也适用于JS/TS knex('cars').insert(cars).then(() => console.log("data inserted")) .catch((err) => { console.log(err); throw err }) .finally(() => { knex.destroy(); }); 我如何才能创建一个新的承诺,拒绝
knex('cars').insert(cars).then(() => console.log("data inserted"))
.catch((err) => { console.log(err); throw err })
.finally(() => {
knex.destroy();
});
我如何才能创建一个新的承诺,拒绝或决心像这样
byID(id: string): Promise<TEntity> {
return new Promise((resolve, reject) => {
const result = pg(cars)
.where({ 'id': id })
// .andWhere('age', '<', 18);
.first();
if (!result)
return reject(new ModelNotFoundError('LMAO user not found'));
resolve(result)
})
}
不确定这是否是您所要求的,但您可以利用async/await const result=等待新的承诺异步解析,拒绝=>{ 试一试{ 等待knex“汽车”,插入汽车; 插入console.logdata; }犯错误{ console.logerr; 拒绝者; }最后{ 捏碎; } 决定
} 无需将knex查询包装为promise构造函数。你可能正试图写这样的东西:
byID(id: string): Promise<TEntity> {
return pg(cars).where({ 'id': id }).first()
.then(result => {
if (!result) {
throw new ModelNotFoundError('LMAO user not found'));
}
return result;
});
})
}
您为什么要使用?