Рендеринг прокси, возвращаемых из асинхронного метода хост-объекта WebView2.C#

Место общения программистов C#
Ответить
Anonymous
 Рендеринг прокси, возвращаемых из асинхронного метода хост-объекта WebView2.

Сообщение Anonymous »


Я использую WebView2 и ищу пример работы с массивом объектов в JavaScript, возвращаемым асинхронным методом хост-объекта C#. В конце концов, я хотел бы иметь возможность доступа к свойствам каждого прокси в возвращаемом массиве простым/прямым способом, но каждый член свойства объекта C# возвращается как обещание в JavaScript, что затрудняет работу с ними.

Например, это работает...

const ents = await window.chrome.webview.hostObjects.myType.GetEntitiesAsync(); for (const p Ents) { пусть имя = ждут p.name; console.log(имя); } НО я хочу просто получить доступ к свойствам непосредственно возвращаемых объектов в массиве, вот так...

for (const p of ents) { console.log(p.name); } ОБРАТИТЕ ВНИМАНИЕ, что я не хочу использовать синхронный window.chrome.webview.hostObjects.sync..., поскольку версия sync блокирует поток пользовательского интерфейса.
>
Вот метод C#, вызываемый приведенным выше кодом.

public async Task GetEntitiesAsync() { ждать Task.Delay(1000); возвращаться [ новый MyEntity {Name = "foo"}, новый MyEntity {Name = "bar"}, новый MyEntity {Name = "baz" } ]; } ОБНОВЛЕНИЕ: я понял, что следующее будет работать (обернуть вызов sync в Promise), но есть ли более простой способ, который мне не хватает?
const ents = await new Promise((resolve) => { const res = window.chrome.webview.hostObjects.sync.myType.GetEntities(); разрешить (рез); }); for (const p Ents) { console.log(p.name); }
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»