Javascript ES6中异步方法的重构结果
我在尝试对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解析之前,不应该执
// 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,但我会在返回时首先重构数据。我实际上是通过调试器来观察这一切的,所以我很确定对象的结构没有问题。