Promise 在原生模拟器上是多线程实现吗

Promise 在原生模拟器上是多线程实现吗??

@jare @panda

我在模拟器上调试,一个方法还没执行完,就不执行了。过一会回来执行,数据都变了。

我那个去,我找了一天。。。

竟然:

加一个cc.log(“000”); 解决了,妈呀。。。:sweat:

加了一个log输出,就能正常保持异步同步顺序依次执行,这是什么原因?

这个问题一直不能得到解释,内心一直会有一块心病。

你敢不敢把代码发出来

不是多线程,但是是异步的

我感觉是你使用姿势不对,js是单线程的,所以肯定不是多线程,promise实际调用的是协程

后来我尝试了3个Promise,延迟同时执行while(true),可以证实不是多线程。

但是我项目中遇到的问题确实很奇怪,我在方法中想删除一个数组中的元素,第一行找到此元素的索引index,下一行,此索引index就不在数组中了。而且是必现。

此方法我还不能抽出来,因为大部分情况下,我写个小案例demo,都是正常的。

最终在方法外加一行cc.log(‘000’)输出解决。

你可能是把数组写到类的原型上了,多个实例操作的是一个protype原型上的数组。
JS原型链看一下

web上一切都很正常,只有native上,模拟器中才会出现。
这和原型链有关系吗?我使用es6写的代码,正常初始化数组,正常push操作。

如果web正常,native有问题的话,看下是不是target的问题。

什么target?