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

好人一生平安

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。
政策上目前是怎样的?

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

上传@panda说,2.x不支持ios10以下是因为ios10以下不支持TypedArray

ios使用v8,是不是就能解决原生平台2.x不支持ios10以下的问题?@jare

iOS 10 以下很多都是 32 位设备,V8 不能跑在 32 位。说白了苹果要让你换机子,你不得不换的。

给大佬递茶,

战术插眼