1

我可以看到已经讨论过这个问题,但是我没有将给出的答案和我的问题联系起来。

我正在使用 jQuery 1.4.2,我希望将两个 ajax 调用链接在一起,将第一个的响应作为输入传递给第二个。

我有这个:

 ftpReport(taskID, debugMode)
 .then((errorFlag) => {
     return updateTask(taskID, errorFlag, debugMode);  
 })
 .done(() => {});

函数ftpReport开始:

 function ftpReport(taskID, debugMode) {
        return $.ajax({

因此,我将返回此函数,以便可以通过以下对 updateTask 的调用对其进行调整

我试图从ftpReport返回一个值(在成功和错误 fns 期间),期望返回的值将被视为errorFlag到下一步调用updateTask

 success: function () {
     return 0;
 },
 error: function (XMLHttpRequest, textStatus, errorThrown) {
     return 1;
 }

显示为errorFlag的值为""

如何更正我的代码,以便将ftpReport报告的 1 或 0传递给updateTask

4

1 回答 1

1

从返回的承诺$.ajax将解析为成功响应或触发异常(在错误的情况下)。

它不采用从成功和错误回调返回的值。这些的返回值被忽略。

要将它们转换为解析为 1 或 0 的 Promise,您需要显式创建该 Promise。

return new Promise( res => {
   $.ajax({ 
       // Other options
       success: () => res(0),
       error: () => res(1),
   });
});
于 2019-02-15T11:57:13.123 回答