Javascript如何使用destructuring将promise.spread语法迁移到async / await

问题描述 投票:7回答:1

我正在清理一些sequelize代码,findOrCreate函数返回一个需要传播以获取实际结果对象的promise。

我想重写我的代码以使用await代替,并且,鉴于ES6支持数组解构,我认为不是

User.findOrCreate({ where: { mcId }, defaults }).spread((user, created) => {
  // do stuff
})

我能做到的

const [user, created] = await User.findOrCreate({ where: { mcId }, defaults })

但唉,事实并非如此。

我得到错误(intermediate value) is not iterable

这样做有什么特别的伎俩,或者我想做的事情是不可能的?

javascript promise async-await spread-syntax
1个回答
4
投票

我正在使用Sequelize v4.37.10,这对我有用 -

 const [address, created] = await models.Address.findOrCreate({ where: { pid: 123}, defaults});
© www.soinside.com 2019 - 2024. All rights reserved.