xieranmaya

Results 35 comments of xieranmaya
trafficstars

同遇到过。。。 调了好久才调出来,主要是JSON.parse不会告诉你问题出在哪一行

@nobodiness 问题提的很好,不过注意看源代码, try块是包在setTimeout里面的

@HeskeyBaozi 这个问题在我最初实现的时候也是纠结了我好久,最终跟你差不多,发现还是自己没有考虑全面~~我的代码里面也有几乎相同的逻辑,你在当前页面搜“thenCalledOrThrow”就能看到了~

> bluebird的实现好像是node端首选process.nextTick其次是setImmediate 。 browser端首选MutationObserver其次是setTimeout 是的,这个我文中有提到。 另外关于两种task的区别,这种情况下,如果全用setTimeout的话也是不会错乱的。在支持的环境中用更“高效”的函数就可以了

@ENder1217 第一个红框应该是你没看明白逻辑,resove的是promsie2(即then返回的promise),而不是正在执行的then所属的promise 第二个红框里的逻辑我后来在完整的代码里去掉了,把逻辑全部移到了resolvePromise函数里,之所以会写在这里,是因为测试用例里有一个边缘的用例需要用这个逻辑来覆盖。 三框跟四框那里的不一致应该也是编辑文章过程中的遗漏(应该是要一样的逻辑才对),建议去仓库看完整代码 最后一张图里的三个框的return是为了给人看的,因执行到这里逻辑就结束了,如果没有return,做为读者可能还要再看看会不会再执行到其它地方,所以刻意加了return以示逻辑结束 感谢你把代码读的这么仔细,回的有点晚,抱歉~

@joezimjs Wow, very clever idea!!! I have take a while understanding it~this is exactly how cascading works, thanks

@cssmagic 中间哪里没跟上?我看看是不是写的不清楚,我重写一下~