Ajax Javascript Promise返回错误的值

时间:2018-10-08 16:44:33

标签: javascript jquery

我在兑现承诺方面遇到了实际问题。我使用的API的工作方式是,您首先请求一个reportID,然后查询该reportID以获取数据。

在我尝试实现promise之前,我的ajax代码曾经可以正常工作。现在,它仅使用“ get”查询中的reportID进行响应,但是我真正想要返回的是来自“ return(result);”的数据响应。

我认为这与我在顶部的getReport前面使用“ return”有关,但是如果我删除它,则会违反我的诺言

  

index2.html:16未捕获的TypeError:无法读取的属性“完成”   未定义       在index2.html:16

index.html

function firstFunction() {
  return getReport(2, 'queue', 'hour', '2018-09-09', '2018-09-10', 'pageviews', 'page', 's1390_5bbb443734ab6a764639ff37');
};
var test = firstFunction();
test.done(function(data) {
  alert(data);
});

report.js

function getReport(ref)
{

   return $.ajax({
        url: "report.php", 
        dataType: 'json',
        data: { 
            ref: ref
        },
        success: function(result){
           if (type == 'queue')
           {   
               getReport(result.reportID, 'get');
           }
           else if(result.error == "Bad Request") 
           {
           }
           else if(result.error == "report_not_ready") 
           {
           setTimeout(function(){
            getReport(ref, 'get');
            },1000);  
           }
           else
           {
           return (result);
           }
         }
    });
}

0 个答案:

没有答案