Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery 3.2.1和TypeScript承诺_Jquery_Typescript_Ecmascript 6_Promise - Fatal编程技术网

jQuery 3.2.1和TypeScript承诺

jQuery 3.2.1和TypeScript承诺,jquery,typescript,ecmascript-6,promise,Jquery,Typescript,Ecmascript 6,Promise,我正在使用带有jQuery 3.2.1和最新类型定义的TypeScript 2.4 在一个服务类中,我有以下方法: DoSearch(searchItem: string): Promise < IWikipediaRestRecord[] > { return $.getJSON("https://en.wikipedia.org/w/api.php?action=opensearch&format=json&callback=?&search="

我正在使用带有jQuery 3.2.1和最新类型定义的TypeScript 2.4

在一个服务类中,我有以下方法:

DoSearch(searchItem: string): Promise < IWikipediaRestRecord[] > {
    return $.getJSON("https://en.wikipedia.org/w/api.php?action=opensearch&format=json&callback=?&search=" + searchItem)
      .then(function(data) {
        var result: IWikipediaRestRecord[] = [];
        for (var i = 0; i < data[1].length; i++) {
          result.push({
            title: data[1][i],
            content: data[2][i],
            link: data[3][i]
          });
        }
        return result;
      });
DoSearch(searchItem:string):Promise{
返回$.getJSON(“https://en.wikipedia.org/w/api.php?action=opensearch&format=json&callback=?&search=“+搜索项)
.then(功能(数据){
var结果:IWikipediaRestRecord[]=[];
对于(var i=0;i
在编译项目时,出现以下错误:

error TS2322: Type '**Promise3**<IWikipediaRestRecord[], any, never, never, never, never, never, never, never>' is not assignable to type '**Promise**<IWikipediaRestRecord[]>'.
  Types of property 'then' are incompatible.
    Type '{ <ARD = never, AJD = never, AND = never, BRD = never, BJD = never, BND = never, CRD = never, CJD...' is not assignable to type '<TResult1 = IWikipediaRestRecord[], TResult2 = never>(onfulfilled?: ((value: IWikipediaRestRecord...'.
错误TS2322:类型“**Promise3**”不可分配给类型“**Promise**”。
“then”属性的类型不兼容。

键入“{可能是选择您真正想要使用的promise实现的最佳选择。本机实现可能是更好的选择,因此您可以这样做

var jqPromise = $.getJSON("https://en.wikipedia.org/w/api.php?action=opensearch&format=json&callback=?&search=" + searchItem)
  .then(function(data) {
    var result: IWikipediaRestRecord[] = [];
    for (var i = 0; i < data[1].length; i++) {
      result.push({
        title: data[1][i],
        content: data[2][i],
        link: data[3][i]
      });
    }
    return result;
  });

return Promise.resolve(jqPromise);
var jqPromise=$.getJSON(“https://en.wikipedia.org/w/api.php?action=opensearch&format=json&callback=?&search=“+搜索项)
.then(功能(数据){
var结果:IWikipediaRestRecord[]=[];
对于(var i=0;i
其中,最后一行将jQuery承诺对象转换为标准ES6承诺