我正在研究从 Javascript 调用 Silverlight。我有scriptable
方法工作,但这个方法需要是异步的。因此,当我从托管代码返回一个值(如字符串)时,实际的字符串值不会返回给 JavaScript;它类似于ToString
返回类型。
有没有一种正常的方法来处理这种情况并在 JavaScript 中“等待”来解开值?
我正在研究从 Javascript 调用 Silverlight。我有scriptable
方法工作,但这个方法需要是异步的。因此,当我从托管代码返回一个值(如字符串)时,实际的字符串值不会返回给 JavaScript;它类似于ToString
返回类型。
有没有一种正常的方法来处理这种情况并在 JavaScript 中“等待”来解开值?
您的可调用 Silverlight 方法应采用一个ScriptObject
参数,以便 JavaScript 可以传入回调。然后,您可以调用回调,完成后传入结果。像这样的东西:
[ScriptableMember]
public async Task DoSomethingAsync(ScriptObject callback)
{
var result = await SomeAsynchronousThing();
callback.InvokeSelf(result);
}
你会这样称呼它:
silverlightObj.DoSomethingAsync(function(result) {
// handle the result
});