У меня проблемы с использованием обещания дождаться завершения функции перед возвратом значения. Я просмотрел этот ответ на форуме несколько раз, но не могу понять, как заставить его работать.
Post> Как мне вернуть ответ от асинхронного вызова?
Самое близкое, что я получил, это то, что все еще не работает. Я был бы очень признателен, если бы кто-то мог исправить мою ошибку.
От Blazor:
string thing = await js.InvokeAsync<string>("GetThing");
До JavaScript:
window.CreateFontThumnailArray = () =>
{
var thing = "";
let start = new Promise(function (resolve, reject) {
someObject.GetThingWithCallback(function (blob) {
thing = "some text";
//I want this to finish before parent function completes,
// and "return thing;" is called.
resolve();
});
});
Promise.all([start]);
return thing;
}
Я немного понимаю, что находится в вышеупомянутом посте и сумел заставить некоторые тестовые функции работать, но не тогда, когда он находится в обратном вызове функции. Любит приведенный выше пример "GetThingWithCallback (function () {" HERE "})"
Моя единственная другая опция - сделать вызов void. А затем обработать обратный вызов Blazor. Но если я это сделаю, я не смогу обработать немедленные действия после вызова функции JavaScript. Что было бы самым идеальным.
Любая помощь с благодарностью.