在承诺之外返回一个承诺variables
我需要从承诺之外得到一个variables的价值,但是我不能因为这个范围的原因。 在我的情况下,我使用Sequelize将数据保存到SQL数据库,但我想做类和dataToReturn
我收到第二次save
后的承诺
.post('/', (req, res) => { const event = new Event(Events, Data, req.body) event.save() res.status(201).json("HERE I NEED THE 'dataToReturn' from the promise") })
这是我的课堂活动
class Event { constructor(Events, Data, Event) { this._Data = Data, this._Events = Events this._Event = Event } save() { this._Data.build(this._Event.Data).save().then((res) => this._Events.build({ name: this._Event.name, date: this._Evento.fecha, photo1: this._Event.photo1, photo2: this._Event.photo2, idData: res.dataValues.id }).save().then((dataToReturn) => "???")) <-- dont know what to do here return dataToReturn <-- I want to return that variable but I cant because scopes }
你有什么build议? 我迷路了
class Event { /** * Same code */ save() { return this._Data.build(this._Event.Data).save().then((res) => this._Events.build({ name: this._Event.name, date: this._Evento.fecha, photo1: this._Event.photo1, photo2: this._Event.photo2, idData: res.dataValues.id })).save(); }
然后在你的路线中使用:
.post('/', (req, res) => { const event = new Event(Events, Data, req.body) event.save().then((dataToReturn) => { res.status(201).json(dataToReturn); }); })
写在手机上,所以它不会看起来最好..
在你的活动中删除。 删除返回语句。 在你的路线做:
return event.save().then(results => res.status(200).json(results));