2017-01-17 82 views
0

我是打字稿和ajax的新手。 我已經寫在打字稿的方法跨類使用了Ajax調用:如何在打字稿中使用differenet類中的ajax方法

myFunc(value: string): JQueryPromise<any> 
{ 
    var dfd = $.Deferred(); 

    $.ajax({ 
     url: "http://finance.google.com/finance/info?client=ig&q=NASDAQ:GOOGL", 
     data: "", 
     success: function(value?: string) { 
      console.log("success"); 
      dfd.resolve(value); 
     }, 

     type: "GET", 
     async: true, 
     dataType: "jsonp" 
    }); 

    return dfd.promise(); 
} 

但我面臨的問題,而使用when和jQuery的then消費它

var promiseOne = this.myFunc("value1"); 
    $.when(promiseOne).then((valFromPromiseOne: any) => 
    { 
     alert(valFromPromiseOne); 
    }); 

我得到打字稿錯誤說: Supplied parameters do not match any signature of call target

如果有人可以告訴我從我的ajax方法得到結果的最佳方法..我試過用jQuery的緩衝區t正面臨同樣的問題

+0

你嘗試'this.myFunc( 「值1」)進行((valFromPromiseOne:任意)=> { 警報(valFromPromiseOne); });' – NicoD

+0

嗨尼科,你的方法只能成功部分處理..你可以建議一種方法來處理成功和錯誤 – focode

回答

0

根據關於jqXHR對象的jquery文檔應該這樣工作。

this.myFunc("value1") 
.done((valFromPromiseOne: any) => { alert(valFromPromiseOne); }) 
.fail(() => { alert("fail")});