我还是第一次在前端代码中看到
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 shakaraka PRO ``` let fetchData = async function(){ console.log('start') await new Promise(resolve => setTimeout(() => resolve(), 2000)) console.log('end') } fetchData() ``` 为什么不行?不是已经支持很久了么,难道我 out 了? |
![]() | 11 shakaraka PRO |
![]() | 12 Phariel 2019-09-16 17:08:12 +08:00 via iPhone TS 或者 Babel 做个兼容性转译吧 |
13 15651980765 2019-09-16 7: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 ![]() 天翼 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 ![]() 现在用 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 版本就支持了 |