Пожалуйста, потерпите меня, я попал в новый проект и пытаюсь принять все это. Я добился прогресса за последние пару дней, но, похоже, не могу преодолеть этот последний горб.Надеюсь, я смогу объяснить это правильно.
Я загружаю веб-форму и мне нужно обратиться к API, чтобы получить некоторую информацию, которая может присутствовать или не присутствовать на основе данных, загружаемых в данный момент.Я упростил свою страницу, чтобы она стала такой.
...Get some information the user wants and start to do some work to load
up the page and set up the form.
...old stuff working fine...
//Time for my new stuff
var testValue
async function test() {
await http.post(appConfig.serviceRootUrl + '/api/XXX/YYY',
{ mProperty: myObject.collectionInObject.itemInCollection }).then(function (result) {
if (result.length < 1) {
testValue= false;
}
else if (result[0].infoIWant.trim().length > 0) {
testValue= true;
}
});
}
test();
//Originally above in the if I was just seeing if I got a result
//and setting testValue to true/false but changed it for debugging
//and I am surely getting back correct values when the data exists
//or result.length zero when no data for it
...Do a bunch of more stuff that is old and working correctly....
//Test the new stuff up above
alert(testValue);
Большую часть времени я возвращаю правильное истинное или ложное в предупреждении, но время от времени я возвращаюсь неопределенным.Я предполагаю, что неопределенное связано с тем, что оно получает предупреждение до того, как завершится async / await.У меня сложилось впечатление, что он не пройдет мимо строки, где я вызываю «test ();».Я думал, что это фактически заставляет это останавливать что-либо ниже test ();пока ожидание не закончится.Первоначально это было немного сложнее, но я продолжаю сокращать его, чтобы сделать его (надеюсь) более простым / простым.
Чего мне не хватает в моих мыслях или реализации?
Любая помощь очень ценится, когда я гоняюсь за своим хвостом.