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

Dav*_*Sag 7 javascript promise async-await spread-syntax

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

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

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

我能做到的

const [user, created] = await User.findOrCreate({ where: { mcId }, defaults })
Run Code Online (Sandbox Code Playgroud)

但唉,事实并非如此.

我收到了错误 (intermediate value) is not iterable

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

Ksh*_*esh 6

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

 const [address, created] = await models.Address.findOrCreate({ where: { pid: 123}, defaults});
Run Code Online (Sandbox Code Playgroud)