TsLint 抱怨调用***异步方法

Posted

技术标签:

【中文标题】TsLint 抱怨调用***异步方法【英文标题】:TsLint complains about calling top level async method 【发布时间】:2019-01-26 13:53:35 【问题描述】:

我已将 TsLint 配置为警告未处理的承诺:


    "rules": 
        "no-floating-promises": [
          true,
          "Promise",
          "Q.Promise" 
        ],
    

代码跟在standard template for build tasks for vsts:

async function run() 
  try 
      ...
   catch (err) 
      tl.setResult(tl.TaskResult.Failed, err.message);
  


run(); // tslint complains here...

TsLint 现在抱怨 promise 未处理,但我不能在 run 之前添加 await ...我不想将 run 与 .then 混合,因为它引入了另一个异步范例...

ERROR: C:/Users/JesseHouwing/Source/Repos/....ts[16, 5]: Promises must be handled appropriately

这些任务在 Node 中执行,而不是等待 run 方法,它工作正常......我可以安全地抑制它吗?有更好的方法吗?

【问题讨论】:

【参考方案1】:

似乎我可以通过使用以下方法安全地抑制该值:

async function run() 
  try 
      ...
   catch (err) 
      tl.setResult(tl.TaskResult.Failed, err.message);
  


void run(); // tslint no longer complains here and it's explicit :)

在***run方法前面插入void似乎可以解决这个问题。

【讨论】:

以上是关于TsLint 抱怨调用***异步方法的主要内容,如果未能解决你的问题,请参考以下文章

异步等待返回任务

java 异步调用方法

java 异步调用方法

从另一个异步方法调用的 Spring 异步方法

如何实现webservice的异步调用

异步函数的返回类型必须是全局 Promise<T> 类型