当前位置: 首页 > 知识库问答 >
问题:

前端 - rxjs进行整改异步代码,让代码变得简洁。请问是否可以指导一下呢?

卢阳成
2024-09-05

现在有一个Service 如下:

const getOSQueryBuilder = async (): Promise<Repository<ConfigEntities>> => {
  return Database.getRepository(ConfigEntities)
}

class OSService {
  // 根据ID查询操作
  static async getConfig(id: string): Promise<unknown> {
    return new Promise((resolve) => {
      async function inquire(): Promise<void> {
        const osQueryBuilder = await getOSQueryBuilder()
        const data = osQueryBuilder.findOne({
          where: {
            id
          }
        })
        resolve(data)
      }
      inquire()
    })
  }
}

但是我觉得这个static 异步方法很繁杂,
想要使用rxjs进行整改,让代码变得简洁。请问是否有大神可以指导一下呢?

共有2个答案

湛宜春
2024-09-05
const getOSQueryBuilder = async (): Promise<Repository<ConfigEntities>> => {
  return Database.getRepository(ConfigEntities);
};

class OSService {
  // 根据ID查询操作
  static async getConfig(id: string): Promise<unknown> {
    const osQueryBuilder = await getOSQueryBuilder();
    return osQueryBuilder.findOne({ where: { id } });
  }
}
邢昊焜
2024-09-05

为什么原来的代码要写那么复杂?

const getOSQueryBuilder = async (): Promise<Repository<ConfigEntities>> => {
  return Database.getRepository(ConfigEntities)
}

class OSService {
  // 根据ID查询操作
  static async getConfig(id: string): Promise<unknown> {
    const osQueryBuilder = await getOSQueryBuilder()
    return osQueryBuilder.findOne({ where: { id }})
  }
}
 类似资料:
  • 问题内容: 对于我的调试需求,还算不错。但是,如果可以的 话 ,它会更酷(并且很有帮助)。这可能吗? 问题答案: 有一个项目将iPython嵌入到标准pdb中,因此您可以执行以下操作: 可通过通常的方式安装。 非常短,因此除了easy_installing之外,您还可以在Python路径上的某个位置创建一个文件,并将以下内容粘贴到该文件中:

  • 概述 本章节主要目的是为了规范代码编写过程中的几个标准,防止写出难以维护和修改的代码。 定义 糟糕的代码(简笔画) 编写过程没有构思,从头写到尾 命名混乱 缺乏注释信息 代码臃肿 公共方法和组件没有抽离 核心逻辑无法测试 整洁的代码(素描) 编写过程有构思,以点到面 命名干净整洁 提供信息类注释 代码短小精悍 公共部分能很好的抽离 核心逻辑通过测试用例保证代码质量 必要性 写出糟糕代码的原因: 任

  • 将源自 Robert C. Martin 的 Clean Code 的软件工程原则适配到 JavaScript 。 这不是一个代码风格指南, 它是一个使用 JavaScript 来生产 可读的, 可重用的, 以及可重构的软件的指南。

  • 是否可以调用一个异步方法,以便它从一个同步的方法异步运行?我不关心它挂起同步调用程序直到它返回,而是希望该方法被异步调用。

  • 使用Mocha测试异步代码并不简单!只需在测试完成后调用回调。通过添加一个回调(通常命名done)it(),Mocha将知道它应该等待调用此函数来完成测试。此回调接受Error实例(或其子类)或伪值; 其他任何事情都会导致测试失败。 describe('User', function() { describe('#save()', function() { it('should save wi

  • 异步代码是指当调用后不会立即完成的代码。 setTimeout(() => { console.log('do stuff'); }, 3000 ) 在 setTimeout 执行完3秒后 do stuff 会输出到控制台。我们可以看出当指定的时间过去后我们所提供的异步函数会触发。现在来看个更有启发性的示例: doWork( () => { console.log('call me whe