我正在使用带有项目来处理异步功能的Zone.js,我正在阅读源代码以及它们如何相关,但仍然是新的,以了解所有函数喜欢runGuarded如何帮助我处理异步内容,任何使用Zone的人.js之前分别帮助项目,我有兴趣了解更多关于一切特别知道runGuarded如何在区域中工作,如果有人可以解释,这里是源代码片段:
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;
}
};