【发布时间】:2017-02-18 00:05:24
【问题描述】:
3 月 28 日,Github 上发布了一个问题,该问题涉及异步箭头函数在针对 ES5 时会生成损坏的代码,最终产生以下错误消息:
TS1057:异步函数或方法必须具有有效的可等待返回 输入
这是 Github 上的原始问题:https://github.com/Microsoft/TypeScript/issues/7706
7 月 21 日微软承诺在针对 ES5 时支持async await:http://react-etc.net/entry/async-await-support-for-es5-browsers-pushed-to-typescript-2-1
TypeScript 2.1 现已在 Github 上提供。我已经下载了,你可以在它的 package.json 中看到版本:
"name": "typescript",
"author": "Microsoft Corp.",
"homepage": "http://typescriptlang.org/",
"version": "2.1.0",
"license": "Apache-2.0",
但是,当我尝试使用异步箭头函数(我确实有 TypeScript 2.1)时,我仍然遇到同样的错误:
TS1057:异步函数或方法必须具有有效的可等待返回 输入
今天有人刚刚在 Github 上提出了一个关于这个问题的问题:https://github.com/Microsoft/TypeScript/issues/10805
他被回答说这是重复的,并且是从三月份开始的旧问题,早在TypeScript 2.1开发之前,问题已经关闭。
这里是否有人已经在使用异步箭头函数(并针对 ES5)或者知道它的当前状态是什么?
这是我的代码 sn-p:
async (param1) => {
var var1 = await func1();
}
任何帮助将不胜感激!
【问题讨论】:
-
把这个贴在 TS 列表上,而不是在这里。
-
这是我的问题的正确位置,因为也许我做错了什么
-
如果省略
forEach,只创建lambda函数,错误是否仍然存在?var f = async (param1) => { ... }; -
我很困惑。您的帖子将错误消息说为“TS1057:异步函数或方法必须具有有效的可等待返回类型*,但是在对新删除答案的评论中,您现在说这是其他一些错误消息?
-
@Eric func1 尚未编写,但我认为这不是问题,因为我可以删除此语句并将函数体保留为空,就像您的示例一样,我仍然会得到相同的结果错误。编译器将关键字“async”标记为红线,并将其悬停会弹出我提到的错误。
标签: javascript github typescript async-await