2

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

有没有一种正常的方法来处理这种情况并在 JavaScript 中“等待”来解开值?

4

1 回答 1

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
});
于 2013-05-01T19:24:57.953 回答