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

ts ES5/ES3中的异步函数或方法需要“Promise”构造函数

伯丁雷
2023-03-14

你好,我正在使用异步/等待在我的打字稿项目,但我得到这个日志:

[ts]ES5/ES3中的异步函数或方法需要Promise构造函数。确保您有一个Promise构造函数的声明,或者在您的--lib选项中包含ES2015。

我该如何解决这个问题?

共有3个答案

李意致
2023-03-14

如果您在VS上,请删除tsconfig。json,右键单击解决方案资源管理器中的项目,然后单击属性-

>

模块系统:ES2015

施俊驰
2023-03-14

请尝试此包含es6 promise类型定义的包

npm安装-保存类型/es6-promise

越嘉茂
2023-03-14

如错误消息所示,将lib:es2015添加到您的tsconfig。json

// tsconfig.json
{
  "compilerOptions": {
    "lib": [ "es2015" ]
  }
}

更新:如果这不适合你,试试这个:

JetBrains IDE(如WebStorm)默认使用自己的实现。请确保将其配置为使用TypeScript语言服务。

对于Visual Studio,项目文件和tsconfig。json是互斥的。您需要直接配置您的项目。

https://github.com/Microsoft/TypeScript/issues/3983#issuecomment-123861491

 类似资料:
  • 问题内容: 我如何最好地处理以下情况? 我有一个构造函数,需要一些时间才能完成。 我看到了三个选项,每个选项似乎都与众不同。 一种 ,向构造函数添加回调。 第二 ,使用EventEmitter发出“已加载”事件。 或三 ,阻止构造函数。 但我以前从未见过任何完成的事情。 我还有什么其他选择? 问题答案: 鉴于有必要避免在Node中进行阻塞,事件或回调的使用并不奇怪(1)。 稍加修改为2,即可将其与

  • 问题内容: 假设我有这段代码 我想知道的是该函数是否将异步执行。 问题答案: 设完成为Call(执行者,未定义,«resolvingFunctions。[[Resolve]],resolvingFunctions。[[Reject]]»)。 如果完成是突然完成,则 令status为Call(resolvevingFunctions。[[Reject]],undefined,«completion。

  • 问题内容: 嘿,我对函数的原型和固有性有疑问。您能否解释一下如何从构造函数返回arr并将此arr添加到原型中? 并且在this.arr中是未定义的。有角度的工厂以及前端和后端之间的连接 问题答案: 将异步操作放入构造函数中特别困难。这有几个原因: 构造函数需要返回新创建的对象,因此它不能返回将告诉您异步操作何时完成的承诺。 如果在构造函数内进行异步操作以设置一些实例数据,并且构造函数返回对象,则调

  • 问题内容: 使用Promises时,为什么不能在代码库的其他地方触发并定义? 我不明白为什么,应该在声明诺言的地方本地化逻辑。这是疏忽大意,还是强制执行此参数有好处吗? 我相信执行程序功能应该是可选的,并且它的存在应该确定promise是否封装了解决方案。没有这样的授权,promise的可扩展性就更大,因为您不必立即启动异步。承诺也应该是可重置的。这是1档开关,1或0 或。可以附加许多平行和顺序的

  • 问题内容: 除了* 使用如下所示的反射检查 之外 ,是否有任何方法 要求 类具有默认(无参数)构造函数?(以下方法可以工作,但是很hacky,反射速度很慢) * 问题答案: 您可以为此构建一个注释处理器。注释处理器是在编译时运行的编译器插件。它们的错误显示为编译器错误,甚至可能停止构建。 这是一个示例代码(尽管我没有运行它): 如果引入注释(例如RequiresDefaultAnnotation)

  • 问题内容: 到目前为止,我已经看到了两种在Java中设置变量值的方法。有时使用带有参数的构造函数,而其他setter方法则用于设置每个变量的值。 我知道,一旦使用“新”关键字实例化了一个类,构造函数就会在类内部初始化一个实例变量。 但是,什么时候使用构造函数,何时使用setter? 问题答案: 当您要创建对象的新实例时,应使用构造函数方法,该实例的值已填充(准备使用的对象中已填充值)。这样,您无需