Javascript 创建新承诺,而不是使用then()JS

Javascript 创建新承诺,而不是使用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(); }); 我如何才能创建一个新的承诺,拒绝

我使用nexus是为了我的数据库,但我有一个问题,这个问题通常也适用于JS/TS

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;
        });
     })
  }
您为什么要使用?