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