提问者:小点点

节点中的异步代码-避免异步/等待的冗余使用


我有一个关于async/await在一个用Typescript编写的node.js项目中的用法的问题。

我们有一个函数链,所有的函数都带有async和await。 我的问题是:

我们能避免这些异步/等待吗?

   const processed = await this.processMessage(content);

   async processMessage(message): Promise<Boolean> {
     processed = await this.process(message.data);
     return processed;
   }

   async process(data): Promise<Boolean> {
     // some async action with an await that returns a boolean, i.e. delete in database
   } 

并做

   const processed = this.processMessage(content);

   processMessage(message): Boolean {
     processed = this.process(message.data);
     return processed;
   }

   process(data): Boolean {
     // some async action i.e. delete in database
   } 

所有这些异步等待在整个代码中都是必需的吗? 或者在像这样等待每一个异步步骤的情况下,我们可以使用第二个选项吗?


共1个答案

匿名用户

如果processmessage所做的只是从message中提取data属性,那么您可以只转发由process生成的承诺,而不必等待中间结果。

processMessage(message): Promise<Boolean> {
  return this.process(message.data);
}

相关问题