aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/client/DocServer.ts8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/client/DocServer.ts b/src/client/DocServer.ts
index de9304858..afd7878f2 100644
--- a/src/client/DocServer.ts
+++ b/src/client/DocServer.ts
@@ -215,21 +215,23 @@ export namespace DocServer {
const deserializeFields = getSerializedFields.then(async fields => {
const fieldMap: { [id: string]: RefField } = {};
// const protosToLoad: any = [];
+ const proms: Promise<RefField>[] = [];
for (const field of fields) {
if (field !== undefined) {
// deserialize
- let deserialized = await SerializationHelper.Deserialize(field, val => {
+ let prom = SerializationHelper.Deserialize(field, val => {
if (val !== undefined) {
_cache[field.id] = field;
} else {
delete _cache[field.id];
}
- });
- fieldMap[field.id] = deserialized;
+ }).then(deserialized => fieldMap[field.id] = deserialized);
+ proms.push(prom);
// adds to a list of promises that will be awaited asynchronously
// protosToLoad.push(deserialized.proto);
}
}
+ await Promise.all(proms);
// this actually handles the loading of prototypes
// await Promise.all(protosToLoad);
return fieldMap;