因此,我一直在研究JavaScript实际上是单线程的,即使它似乎是多线程的(或者至少我是这样理解的),我想知道以下功能是否可以保证在其他功能之前完成叫做。
我相当确定,但是对push()
的调用使我担心,当调用它时,某些其他函数可能会首先执行。话虽这么说,我想不出会在push()
中运行的任何长时间运行的代码。
// adds a new node to children, after checking if its UID is not in childrenAdded
this.addChild = function(newChild) {
if (!_this._childrenAdded[newChild.uid]) {
_this._childrenAdded[newChild.uid] = true;
_this._children.push(newChild);
}
}
最佳答案
所有Array
方法(包括push
)都是同步的。这几乎是JS中所有操作的默认设置,异步是一个例外,并记录在每个此类函数中。