首页 > 解决方案 > Ajax Javascript Promise 返回错误值

问题描述

我对承诺有一个真正的问题。我使用的 API 的工作方式是您首先请求一个 reportID,然后查询该 reportID 以获取您的数据。

在我尝试实现承诺之前,我的 ajax 代码过去可以正常工作。现在它只响应来自“get”查询的reportID,但我真正想要返回的是来自“return (result);”的数据响应。

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

index2.html:16 未捕获的类型错误:无法读取 index2.html:16 处未定义的属性“完成”

索引.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);
});

报告.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);
           }
         }
    });
}

标签: javascriptjquery

解决方案


推荐阅读