Blazor JS返回无法使用嵌入函数



我在使用promise等待函数结束后再返回值时遇到问题。我已经看了好几次这个论坛的回复,但不知道如何让它发挥作用。

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"}(">

我唯一的另一个选择是让这个电话无效。然后处理Blazor端的回调。但如果我这样做,我就无法处理调用JavaScript函数后立即执行的操作。这将是最理想的。

非常感谢您的帮助。

我设法解决了这个问题,以防有人也需要这样做。。

我已经接近了,我只需要更改为异步函数。并更改Promise.all([start](;等待启动;

window.CreateFontThumnailArray = async () =>
{
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();
});
});
await start;
return thing;
}

相关内容

  • 没有找到相关文章