首页   注册   登录
 Zhuzhuchenyan 最近的时间轴更新
Zhuzhuchenyan

Zhuzhuchenyan

V2EX 第 463901 号会员,加入于 2020-01-08 18:41:47 +08:00
今日活跃度排名 3237
Zhuzhuchenyan 最近回复了
@1490213 我明白你的担忧。仔细看源码,nexttick 维护了一个需要执行回调的队列,在合适得时候通过一个循环同步的执行。

所以第一种情况 A 先加入队列,然后 B 加入队列,在合适的时候执行了 A,此时浏览器根本没有空调用 await 之后的逻辑先执行了 B,然后才有空调用 await 之后的逻辑

第二种情况就比较简单了,你可以试着分析看。await 所带来的 async context (等价为 promise resolve)为什么会先于 next tick (也可以等价为 promise resolve)执行
对上条回复的补充,如果你配置了 tslint,你在 await 那一行会收到警告

'await' has no effect on the type of this expression. ts(80007)

这里 no effect 并不完全正确,因为他的确会存在潜在的执行顺序变化
对以上两个回答都不敢沟通,给题主一个简单的测试环境
async function test() {
let cb = () => {
Promise.resolve().then(() => console.log('awaited'));
};

await cb();
console.log('after await');
}

test();

以上代码加不加 await 对运行结果是有差异的,分别为,
添加 await:awaited,after await
不添加 await:after await,awaited

究其原因是因为当你给一个 function 添加 async 关键字并在其中使用 await 之后,此处就会产生一个 asynchrony context,所以以上代码最后可以理解为以下的等价代码(仅供参考执行顺序,并不完全严谨)
Promise.resolve()
.then(() => {
let cb = () => {
Promise.resolve().then(() => console.log('awaited'));
};

cb();
})
.then(() => console.log('after await'));

所以题主的理解“ await 后面跟一个函数执行(没有返回 Promise 以及没有 then 属性), 应该是直接返回值, 语义上不应该对执行顺序产生影响”并不完全正确
1 天前
回复了 tttttv2 创建的主题 iDev Apple Store 个人开发者有提交分类限制么
个人开发者,学校期间帮导师上架了几款导师业余想做的文学类目的 app 都没啥问题
目前工作了,业余时间做的游戏(主要分类是游戏)也通过了 test flight 的 beta review,根据官方所说和正式审核要求几乎一致
体感下来应该没啥限制
2 天前
回复了 fangwenxue 创建的主题 问与答 git https 怎样自动输入用户名密码
追求简单的话可以看看这个
https://git-scm.com/book/zh/v2/Git-工具-凭证存储

不顾虑密码在本地明文存储的话直接用 store 就行了
哎,说句离题的感想。
这种系统只有在不知道的时候杀伤力最大,一旦暴露出来就没啥用了。毕竟摸鱼的方法有无数种,他还能放个摄像头实时监测我的表情不成。
40 天前
回复了 Zhuzhuchenyan 创建的主题 互联网 关于国内 UDP 网络环境的问题
@terrytw 好的,目前已经决定全部流量走 tcp 了(捂脸)
41 天前
回复了 Zhuzhuchenyan 创建的主题 互联网 关于国内 UDP 网络环境的问题
仔细想了想,这个问题是个伪问题。
既然担心 udp 丢包那么从一开始就不应该用,毕竟移动数据丢了,光有状态数据,这个游戏也根本完不成。
41 天前
回复了 Zhuzhuchenyan 创建的主题 互联网 关于国内 UDP 网络环境的问题
@terrytw 好的,也就是说实际效果还要根据使用时段不同,或者是地域不同还会有差别。有的时段非常好,有的时段就会很差?
41 天前
回复了 Zhuzhuchenyan 创建的主题 互联网 关于国内 UDP 网络环境的问题
关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1159 人在线   最高记录 5168   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 16ms · UTC 22:28 · PVG 06:28 · LAX 15:28 · JFK 18:28
♥ Do have faith in what you're doing.