JavaScript到Silverlight:等待基于任务的方法

时间:2013-05-01 19:08:13

标签: javascript silverlight asynchronous

我正在研究从Javascript调用Silverlight。我有scriptable方法,但此方法需要异步。因此,当我从托管代码返回一个值(如字符串)时,实际的字符串值不会返回到JavaScript;它类似于返回类型的ToString

是否有正常的方法来处理这种情况并且等待"等待"在JavaScript里面打开值吗?

1 个答案:

答案 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
});