Why not just remove the list after all requests are processed?

```
for(var r in this._pendingRequests[uri]) {
    var request = this._pendingRequests[uri][r];
    this._handleLoadedXML3D(request.entity, this._cachedDocuments[uri], request.callback);
}
delete this._pendingRequests[uri];
```

The last line will also remove the entire entry from the this._pendingRequests as it is not necessary anymore - the document is cached.