我是 Sequelize 新手。因此,我正在编写一个查询,在其中映射参数并在数据库中找到它们。但我得到的只是一个 promise 。 这是我的代码
findData(params) {
return params.map(product => {
return Model.Stock.findAll({ raw: true })
.then(stocks => stocks.map(stock => ({ success: true, data: stock })))
.catch(err => ({ success: true, error: err.toString() }));
});
},
我希望获得元素,我该怎么做?
0:Promise
_bitField:33554432
_fulfillmentHandler0:undefined
_promise0:undefined
_receiver0:undefined
_rejectionHandler0:Array(4)
_trace:CapturedTrace
__proto__:Object
length:1
__proto__:Array(0)
为了返回对象,我应该更改什么?
最佳答案
我建议阅读一些有关 Promise 以及如何有效使用它们的内容。您可以找到很多例子。
在您的特定情况下,查看代码,您确实收到了一个对象。 看看:
.then(stocks => stocks.map(stock => ({ success: true, data: stock })))
让我们进一步打破它:
stocks => stocks.map
股票应该(从名称来看)有一个对象数组。
就您的情况而言,您可以按如下方式使用它:
findData(params).then(function(yourObjects) {
//do something here...
});
关于javascript - 为什么 Sequelize 中会返回 Promise,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51552194/