我还是第一次在前端代码中看到 await
关键字 ,前端大虾们讲讲
1
zy445566 2019-09-16 16:49:52 +08:00
早就支持了,谁用谁爽谁知道
|
2
phpcxy 2019-09-16 16:51:08 +08:00
|
3
Sniper416 2019-09-16 16:52:11 +08:00
是的
|
4
murmur 2019-09-16 16:53:11 +08:00
这个 node 都要 8 以上才能用,浏览器肯定是要 babel 的
|
5
LiuJiang 2019-09-16 16:54:01 +08:00
这种东西百度一下不好吗?
|
6
daijinming OP @murmur 也就是说直接在浏览器中运行还是不行的是吗
|
7
banxi1988 2019-09-16 16:58:44 +08:00
想要 await,又想要兼容性 推荐使用 TypeScript
[Why TypeScript] (3) 有甜度的 TS 之 async/await,数组及对象解构 https://www.bilibili.com/video/av67096409/ |
8
zhwithsweet 2019-09-16 16:59:59 +08:00
@daijinming #6 Chrome 可以
|
9
randyo 2019-09-16 17:01:07 +08:00 via Android
@daijinming 最新版的浏览器可以用,如果你不考虑兼容性的话😂
|
10
wunonglin 2019-09-16 17:05:15 +08:00
```
let fetchData = async function(){ console.log('start') await new Promise(resolve => setTimeout(() => resolve(), 2000)) console.log('end') } fetchData() ``` 为什么不行?不是已经支持很久了么,难道我 out 了? |
11
wunonglin 2019-09-16 17:06:31 +08:00
|
12
Phariel 2019-09-16 17:08:12 +08:00 via iPhone
TS 或者 Babel 做个兼容性转译吧
|
13
15651980765 2019-09-16 17:41:31 +08:00
ES7 支持了 用起来比回调爽是真的谁用谁知道
|
14
ochatokori 2019-09-16 17:45:24 +08:00 via Android
chrome 早就可以了 现在连 class 都支持,碉堡了
|
15
realkenshinji 2019-09-16 18:13:40 +08:00 via iPhone
@murmur Node 从 7.6 开始支持的好么
|
16
yinjy 2019-09-16 18:34:00 +08:00
看了眼发帖时间
|
17
Clarke 2019-09-16 18:38:26 +08:00 via Android 1
天翼 3G 太快了!
|
18
xrr2016 2019-09-16 18:40:03 +08:00
你是 GG 还是 MM ?
|
19
moxiaonai 2019-09-16 18:45:18 +08:00 via Android
49 年入国军
|
20
jinliming2 2019-09-16 18:50:19 +08:00 via iPhone
@murmur
@daijinming 浏览器也支持好几年了,Chrome 55 开始支持的现在已经 Chrome 75 了。 甚至浏览器都支持 # 开头的 class private fields 了,这个连 TypeScript 都还不支持,导致在 VSCode 里还报错…… |
22
murmur 2019-09-16 19:05:37 +08:00
|
23
sunjourney 2019-09-16 19:08:46 +08:00
什么,大清亡了!
|
24
star7th 2019-09-16 19:20:45 +08:00
真的不是几年前的帖子?居然还有人问这个问题
|
25
no1xsyzy 2019-09-16 20:04:09 +08:00
不用 Babel 就好像在说:
反正自己的用户不足百人, (1-91.13%=) 8.87% 的用户不能用也不过一双手数得过来…… 除了 Electron 其他都上 Typescript target: es5 就行了 babel 转又不是你手写…… |
26
cyrbuzz 2019-09-16 20:18:33 +08:00
正好有个在写的前端项目,前后端通讯用的异步库,回调`.then()` 和 `await` 两种写法都有(因为是一步步来的...刚开始的教程上只有.then 的异步,后来看了看 Js 异步的资料发现可以用 `await`)。
还没完全写完,可以看看ಠᴗಠ。 https://github.com/HuberTRoy/vue-shiyanlou |
27
kangu 2019-09-16 20:38:28 +08:00
谁用谁爽的,都应该没真实掉过坑的,await 写起来舒服,用得多了,光定位 error 估计都要命
|
28
ugu 2019-09-16 22:20:14 +08:00
中国申奥成功了
|
29
sagaxu 2019-09-16 23:16:25 +08:00 via Android
|
30
jinliming2 2019-09-17 00:59:30 +08:00 via iPhone 1
现在用 IE11 日常正常上网都感觉有点阻力了,看 caniuse 最晚支持 await 的浏览器都是 2017 年 1 月就支持了,要是还使用 2 年前的浏览器并且彻底隔绝所有升级更新的,那么肯定已经不是正常用户了(网络联通状态下,几个月,撑死一年不更新都很难了,光自动更新都能给你更新好几轮)。
如果做的是大众型网站,肯定是不用考虑这些非正常终端的,因为这些终端设备肯定不是设计用来访问大众网站的。这些终端通常是办公型设备,上班摸鱼都是不允许的。或者是定制的设备比如 ATM 之类,更不可能正常使用的。 而如果做的网站是面向 2 年前系统的,那么肯定是要单独定制的。 对于 2 年前的浏览器还做专门兼容,你想兼容它们一辈子吗?为啥不针对 IE5 IE6 做兼容嘞?毕竟还有很多怀旧的人去装 win xp win 98,所以真实统计数据这些浏览器用户不会是 0。只不过真的有必要吗? 网传某国军队内部还在用 win 98,如果哪天要求你为他们定制一个系统,你那还真是有必要兼容的…… babel 只不过是现代版本的 jQuery 罢了,让本应该升级的用户有理由停留在旧版本,反正有人帮着做兼容,只不过是拖慢整个互联网发展的进程罢了。不然为啥国外 HTML5 取代 Flash 的速度比国内快那么多,就是 Chrome + FireFox 带着发展的啊! |
31
murmur 2019-09-17 08:21:36 +08:00
@jinliming2 能不能找一个公众网站直接用 await 不 babel 的让我见识一下,规模不用大,a 站这种规模就可以
|
32
w292614191 2019-09-17 08:31:27 +08:00
这个东西不是个语法糖之类的吗?
就是在里面的回调里面调用另一个函数。 你写两个 ajax 试试,还不是要在 ajax 的 success 里面 resolve(); |
33
jydeng 2019-09-17 09:08:34 +08:00
要用 babel 转义,为了不加班修兼容性。
|
34
dbpe 2019-09-17 09:22:02 +08:00
什么 java8 发布了?
|
35
Curtion 2019-09-17 10:05:02 +08:00
是语法糖,做的就是 co 库的事情
|
36
chaliely 2019-09-17 11:46:05 +08:00
是的支持,await,必须要放在 async 函数里面
|
37
12tall 2019-09-17 12:19:57 +08:00
es2017 的特性吧,但是主流不还是 es2015 么
|
38
zephyru 2019-09-17 15:47:31 +08:00
@murmur 我不是想抬杠..不过 github 好像没做兼容直接在用 await....当然你觉得不算公众网站那就当我没说..
|
39
murmur 2019-09-17 16:17:29 +08:00
@zephyru github 在 chrome 下的确使用了 es6 语法,但是在 IE 下会自动加载另外一套代码保证基本的操作正常
|
40
no1xsyzy 2019-09-17 19:37:00 +08:00
@zephyru 论 Github 的 PE,是我见过并能想象的天花板。
NoScript 的日子里(有类 Spectre 的 demo 还没修,而我还用着 iu 的日子里),只有 Github,我根本没有发现我没开 JS 运行权限。 导致我有种拿网景浏览器都能正常使用 Github 的感觉。 |
41
flowfire 2019-10-26 10:59:06 +08:00
|
42
flowfire 2019-10-26 11:00:48 +08:00
chrome 从 55 版本就支持了
Firefox 从 52 版本就支持了 |