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)
我只是想确保我对正在发生的事情的基本理解是正确的。
我收到了一个承诺,而不是预期的 json。为什么?
我正在尽力遵循笑话文档,并且我也在尽力自学。我在关注官方笑话网站上的文档时遇到问题。我在模拟模块部分。它与 axios 有关,但我不断在打字稿中收到错误,该错误表明该模拟实现不是其属性(无论模拟是什么)
我尝试环顾四周,看看这是否是我的配置的问题,但我无法弄清楚。
// 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)
我所做的就是遵循文档。在我进行分区之前我没有遇到任何问题。