我在寫一個Javascript函數,它將由C#應用程序調用。我可以從C#調用函數,但一直無法檢索函數的結果。從Javascript中的回調函數獲取結果
所以,我有以下結構:
var B = function() {
var A = function() {
var dfd = new $.Deferred();
// do something and then return the value I need
return dfd.resolve(x);
......
return dfd.promise();
}
$.when(A()).
then(function(x) {
// I can get the x I want here.
alert(x);
// What to do at this point?
});
}
由於A()
使用異步方法,我選擇使用jQuery.promise()
方法,以確保我得到的A()
最終結果。現在我想要B()
將值x
返回給C#應用程序。有沒有解決這個問題的好方法?
可能重複[如何從C#宿主應用程序執行Javascript回調函數](http://stackoverflow.com/questions/21138740/how-can-i-execute-javascript-callback-function-from-c- sharp-host-application) –
「返回...到C#應用程序」是什麼意思?在客戶端瀏覽器中執行JavaScript之前,C#已經退出了這個圖片。您將需要爲您的應用程序創建一個新的HTTP請求,或許使用'x'的值作爲查詢字符串參數。 – 76484
@ 76484所以我只是從C#調用腳本。我的應用程序是同步的,而我使用的API不是,所以我想做一些讓'B()'函數顯示爲同步並在'A()'完成所有事情後返回值。 – dahui