Javascript ES6中异步方法的重构结果

Javascript ES6中异步方法的重构结果,javascript,async-await,destructuring,Javascript,Async Await,Destructuring,我在尝试对ES6中异步调用的返回进行分解时遇到了一个奇怪的问题。本质上,这就是问题所在: // Resolves to { foo: { bar: baz } } const { foo } = await fetchData(); console.log(foo); // { bar: baz } const { bar } = foo; console.log(bar); // Undefined 我也尝试了等待foo,但这似乎也不起作用。据我所知,在fetchData解析之前,不应该执

我在尝试对ES6中异步调用的返回进行分解时遇到了一个奇怪的问题。本质上,这就是问题所在:

// Resolves to { foo: { bar: baz } }
const { foo } = await fetchData();

console.log(foo); // { bar: baz }
const { bar } = foo;
console.log(bar); // Undefined

我也尝试了
等待foo
,但这似乎也不起作用。据我所知,在fetchData解析之前,不应该执行destructuring表达式,并且日志语句按预期顺序出现,这意味着
foo
在执行重构语句的点上有一个值。我很困惑。

foo
对象中,有另一个“foo”。可能是问题吗?fetchData()似乎正在返回
{foo:{foo:{bar:baz}}}
看起来像您想要的
const{bar}=foo.foo哦,是的,这是一个错误。现在已修复。我正在使用axios,但我会在返回时首先重构
数据。我实际上是通过调试器来观察这一切的,所以我很确定对象的结构没有问题。