小编San*_*il9的帖子

为什么 async wait 不能正确地与 axios 一起工作?

https://codesandbox.io/s/asyncawait-axios-practice-c060n

这是我拥有的带有简单代码的沙箱的链接。为什么它不断返回承诺而不等到它完成解析,因为我在 axios 调用之前放置了 wait ?

就好像它只是返回承诺并且完成了。如果我在函数本地范围内执行 console.log ,它将返回一个承诺对象,如果我返回结果并在全局范围内执行 console.log ,它将返回我正在寻找的内容。问题是,我认为我不必这样做并等待承诺解决。我知道 asyn 返回一个承诺,axios 也返回一个承诺...那么在处理承诺解决承诺时我错过了什么?

import axios from "axios";

async function GetPosts() {
  const result = await axios.get("https://jsonplaceholder.typicode.com/posts");
  const data = await result.data;
  return data;
}

const response = GetPosts();
console.log(response);
Run Code Online (Sandbox Code Playgroud)

我只是想确保我对正在发生的事情的基本理解是正确的。

  • 我正在导入 axios
  • 我正在声明一个名为 GetPosts() 的函数,该函数在 axios 调用之前已等待。(我假设它会暂停直到完成)
  • 我正在等待结果数据

我收到了一个承诺,而不是预期的 json。为什么?

javascript ecmascript-6 axios

5
推荐指数
1
解决办法
5982
查看次数

按照 Jest Docs,在 mockImplementation() 上出现错误。我究竟做错了什么?

我正在尽力遵循笑话文档,并且我也在尽力自学。我在关注官方笑话网站上的文档时遇到问题。我在模拟模块部分。它与 axios 有关,但我不断在打字稿中收到错误,该错误表明该模拟实现不是其属性(无论模拟是什么)

我尝试环顾四周,看看这是否是我的配置的问题,但我无法弄清楚。

脚.ts

// foo.ts
export default function() {
    // some implementation;
  };
Run Code Online (Sandbox Code Playgroud)

测试.ts

import foo from '../src/foo';

// test.js
jest.mock('../src/foo'); // this happens automatically with automocking
foo.mockImplementation(() => 42);
foo();
console.log(foo())
Run Code Online (Sandbox Code Playgroud)

这是我在mockImplementatin上遇到的错误

Property 'mockImplementation' does not exist on type '() => void'.ts(2339)
Run Code Online (Sandbox Code Playgroud)

我所做的就是遵循文档。在我进行分区之前我没有遇到任何问题。

typescript jestjs ts-jest

2
推荐指数
1
解决办法
2412
查看次数

标签 统计

axios ×1

ecmascript-6 ×1

javascript ×1

jestjs ×1

ts-jest ×1

typescript ×1