Javascript Zone.js如何在幕后与Angular4合作
我在一个项目中使用Zone.js来处理异步功能,我正在阅读源代码以及它们之间的关系,但仍然不了解像Runguard这样的所有功能如何帮助我处理异步内容,以前有人单独使用Zone.js来帮助项目,我很想了解更多关于Runguard在zone中的工作原理的知识,如果有人能解释的话,这里是源代码的片段:Javascript Zone.js如何在幕后与Angular4合作,javascript,angular,asynchronous,zonejs,Javascript,Angular,Asynchronous,Zonejs,我在一个项目中使用Zone.js来处理异步功能,我正在阅读源代码以及它们之间的关系,但仍然不了解像Runguard这样的所有功能如何帮助我处理异步内容,以前有人单独使用Zone.js来帮助项目,我很想了解更多关于Runguard在zone中的工作原理的知识,如果有人能解释的话,这里是源代码的片段: Zone.prototype.runGuarded = function (callback, applyThis, applyArgs, source) { if (ap
Zone.prototype.runGuarded = function (callback, applyThis, applyArgs, source) {
if (applyThis === void 0) { applyThis = null; }
if (applyArgs === void 0) { applyArgs = null; }
if (source === void 0) { source = null; }
_currentZoneFrame = { parent: _currentZoneFrame, zone: this };
try {
try {
return this._zoneDelegate.invoke(this, callback, applyThis, applyArgs, source);
}
catch (error) {
if (this._zoneDelegate.handleError(this, error)) {
throw error;
}
}
}
finally {
_currentZoneFrame = _currentZoneFrame.parent;
}
};