花了一周时间, 搞清了一个只在iOS可能出现的致命bug(长文慎入, JSC, Await/Promise, Mircotasks)

这引擎出了这么久了,依然还是掉进老坑,开发者把大量的时间都花在给引擎找bug上,到最后做的都是无用功,浪费程序员的青春,做出的产品质量惨不忍睹,老程序都被坑怕,没有多余的时间花在产品上,花在赚钱上面。。。

还是cocos开发团队那句话,开发者使用引擎的姿势千奇百怪…而且这个promise的问题确实是jsc的锅…

3赞

, 使用setTimeout实现的Promise polyfill,
有没有大神知道怎么实现这个啊。目前项目貌似出现了这个问题

好人一生平安

1赞

哥,楼主说的这是 JSC 的 bug,又不是我们的锅,所有 iOS 的 JavaScript 应用都可能会这样

2赞

这是真正的大佬

是大佬,我死了

早点转unity, 早点转早点解脱

网上搜一下, 很多的
https://www.baidu.com/s?ie=UTF-8&wd=promise%20polyfill

这是大佬

我们会尝试在 2.2.1 启用 JavaScriptCore,来彻底避免这个错误。

应该是 “启动 V8” 或者 “弃用 JavaScriptCore” 吧?

FYI, Egret和Laya的做法是找了一个 setTimeout 实现的 promise polyfill

嗯。说错了。改由 2.2.0 启用 V8

1赞

mark

真大佬啊,我很久之前就发现了这个问题,一直没能力解决。

这是我在3月29日发的帖子,就是反应的这个问题:
https://forum.cocos.com/t/promise/75783

我当初还以为是多线程呢?Promise里面的代码怎么不是像正常的逻辑顺序执行的,后来我是通过加了一句console.log()解决的,不明所以。

楼主大佬您好,我和你确认一下,你这个解决就是,类似这样的处理:

(()=>{
    let k = 0;
    settimeoutPromise(0).then(()=>{
	k = 1;
    })
    console.error(k);	
    console.error(k); 
  })();

是吗?

promise-polyfill

大佬 喝茶

请问,目前苹果允许使用第三方虚拟机了吗?例如游戏引擎使用vd8。
政策上目前是怎样的?

苹果禁用的是热更,不是虚拟机