Axios 中的 then() 函数介绍和使用

发布于 2022-07-06 12:52:05 字数 1975 浏览 1304 评论 0

Axios 请求实际上是 promises 。 这意味着您可以将它们与 Promise 链接 async/await 一起使用。

const axios = require('axios');

const req = axios.get('https://httpbin.org/get?hello=world');

req instanceof Promise; // true

const res = await req;
res.data.args; // { hello: 'world' }
return req.then(res => {
  res.data.args; // { hello: 'world' }
});

处理错误

Axios 在服务器响应 HTTP 成功代码 ,或在服务器以 HTTP 错误响应时拒绝请求承诺。如果发生错误,您可以使用 .then() 或者 .catch()

const axios = require('axios');

const err = await axios.get('https://httpbin.org/status/404').
  then(() => null, err => err);

err.response.status; // 404
err.response.statusText; // 'NOT FOUND'

Axios 请求立即执行

不需要 调用 .then() 或者 .catch() 执行 Axios 请求。 Axios 会立即自行执行请求。所以即使你不调用 then(),您的服务器仍会收到请求。

const axios = require('axios');
const express = require('express');

// Create a dummy Express server that stores all inbound
// requests
const app = express();
const requests = [];
app.get('*', function(req, res) {
  requests.push(req);
  res.json({ ok: 1 });
});
const server = await app.listen(3000);

// Send a request without calling `then()`.
axios.get('http://localhost:3000');

// The server got the request.
await new Promise(resolve => setTimeout(resolve, 100));
requests.length; // 1

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

旧情别恋

暂无简介

0 文章
0 评论
23 人气
更多

推荐作者

醉城メ夜风

文章 0 评论 0

远昼

文章 0 评论 0

平生欢

文章 0 评论 0

微凉

文章 0 评论 0

Honwey

文章 0 评论 0

qq_ikhFfg

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文