RoamingSettings в надстройке Outlook не работает должным образом - PullRequest
0 голосов
/ 10 декабря 2018

В настоящее время я использую RoamingSettings в Outlook для хранения двух значений.Это фрагмент, который я использую для хранения значений:

Office.context.roamingSettings.set("email", email);
Office.context.roamingSettings.saveAsync(function(res){console.log(res);});
Office.context.roamingSettings.set("name", name);
Office.context.roamingSettings.saveAsync(function(res){console.log(res);});

При первом запуске я получил оба сохраненных значения.Затем я использовал этот фрагмент, чтобы удалить два значения,

Office.context.roamingSettings.remove("email");
Office.context.roamingSettings.saveAsync(function(res){console.log(res);});
Office.context.roamingSettings.remove("name");
Office.context.roamingSettings.saveAsync(function(res){console.log(res);});

, а затем попытался снова добавить эти два значения, и я вижу, что сохраняется только «имя».Я обнаружил, что иногда это работает (оба значения являются хранилищами), и большую часть времени сохраняется только значение 'name'.

Еще одна вещь, которую я заметил, это то, что я сохранил еще одну пару ключей с ключом 'userEmail ', чтобы проверить roamingSettings, и я не могу удалить его из хранилища даже после того, как я использовал remove('userEmail'), а затем saveAsync()

1 Ответ

0 голосов
/ 11 декабря 2018

Это связано с асинхронной природой saveAsync.Либо дождитесь сохранения, либо сохраните после всех правок.Не дожидаясь завершения saveAsync, вы перезаписываете настройки роуминга.

Office.context.roamingSettings.set("email", email);

Office.context.roamingSettings.saveAsync(function(res){
    //Wait for save - callback method.
    console.log(res);
    Office.context.roamingSettings.set("name", name); 
    Office.context.roamingSettings.saveAsync(function(res) {
      console.log(res);
    });
})

Или

Office.context.roamingSettings.set("email", email);
Office.context.roamingSettings.set("name", name);
Office.context.roamingSettings.saveAsync(function(res){console.log(res);})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...