【问题标题】:Can't call axios function within promise then() method无法在 promise then() 方法中调用 axios 函数
【发布时间】:2020-06-02 00:13:35
【问题描述】:

我对一般的 Promise 后端不熟悉,所以如果这是一个愚蠢的问题,我深表歉意。 receivePublicToken() 是从 REST 端点调用的方法。然后,我尝试在该方法的 then 方法中调用 axios 函数(也就是,如果 receivePublicToken() 方法成功,则继续并调用另一个 axios 函数)。 axios 函数总是返回错误。

import { receivePublicToken } from "./controller";    

receivePublicToken(req)
.then(resolve => {
  console.log("Resolved: ", resolve);
  axios.get("/transactions")
  .then(res => console.log("Axios succeeded!"))
  .catch(rej => console.log("Axios failed!")); //this always fails
})
.catch(reject => {
  console.log("Reject: ", reject);
});

它给我的错误:

{ Error: connect ECONNREFUSED 127.0.0.1:80
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1107:14)

有什么想法吗?或者,如果有人对更好的方法有任何建议,我会全神贯注。提前感谢大家! :)

【问题讨论】:

  • 这里看起来与 Promises 或 JS 没有任何关系,看起来像是连接问题
  • @CertainPerformance 我也是这么想的,只是我的第一个 REST 端点是通过 axios 调用来调用的,所以一开始连接似乎工作正常。
  • receivePublicToken...你必须用标头中的令牌做get请求吗?
  • @Andus 对不起,什么?
  • 根据您的代码,您希望在收到某种令牌后完成请求,我的猜测是连接被拒绝可能是因为请求中缺少令牌。我不确定,但看看这是否对你有帮助:stackoverflow.com/questions/41519092/…

标签: javascript rest promise axios


【解决方案1】:

如果您的 API 以需要在标头中包含秘密令牌的方式实现,那么您可能需要在标头中插入令牌。

您能否提供更多有关您正在执行的 get 请求的详细信息?

这行console.log("Resolved: ", resolve); 执行了吗?

【讨论】:

  • 为了让它工作,我的 get 请求当前调用了一个方法,该方法只执行一个 console.log 语句,说明它达到了那个点。稍后我将在其中实现更多逻辑,但我首先想让它工作。是的,我的 console.log("Resolved: ", resolve) 行确实执行了。
  • 您能否提供有关您的 API 实现的更多详细信息?您可以尝试直接在“/transactions”路由上发送获取请求,而不是在第一个请求中调用它吗?它是否正常工作?
猜你喜欢
  • 2021-03-10
  • 2019-06-30
  • 2019-03-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-17
  • 1970-01-01
相关资源
最近更新 更多