src/vs/workbench/api/common/extHostTreeViews.ts/ExtHostTreeView/fetchChildrenNodes
class ExtHostTreeView:	private async fetchChildrenNodes(parentElement?: T): Promise<TreeNode[]> {
		// clear children cache
		this.clearChildren(parentElement);

		const cts = new CancellationTokenSource(this._refreshCancellationSource.token);

		try {
			const parentNode = parentElement ? this.nodes.get(parentElement) : undefined;
			const elements = await this.dataProvider.getChildren(parentElement);
			if (cts.token.isCancellationRequested) {
				return [];
			}

			const items = await Promise.all(coalesce(elements || []).map(async element => {
				const item = await this.dataProvider.getTreeItem(element);
				return item && !cts.token.isCancellationRequested ? this.createAndRegisterTreeNode(element, item, parentNode) : null;
			}));
			if (cts.token.isCancellationRequested) {
				return [];
			}

			return coalesce(items);
		} finally {
			cts.dispose();
		}
	}