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

时间:2018-04-11 02:26:30

标签: javascript promise async-await spread-syntax

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

我想重写我的代码以使用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

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

1 个答案:

答案 0 :(得分:4)

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

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