我如何使用 await 从 DB 使用 Bookshelf js 获取数据?
How can I use await to fetch data from DB using Bookshelf js?
我正在寻找一种方法来等待数据使用,下面是代码。
// Await this set of things
var getResponse = await('pr', 'chat');
let promise = new Promise((resolve, reject) => {
resolve("done!");
});
let chat = new Promise( (resolve, reject) => {
User
.where('id', req.body.application_id)
.fetch({withRelated: ['company']})
.then(function(result, err) {
resolve(result);
});
});
getResponse.keep('pr', promise);
getResponse.keep('chat', chat);
getResponse.then(function(response) {
console.log('in to reponse:-', response);
res.status(200).send(response);
},function(err) {
res.status(400).json({'error' : "Error while fetching data"});
});
在控制台上获得响应是 { pr: Promise { 'done!' }, chat: Promise { <pending> } }
浏览器响应
{
"pr": {},
"chat": {}
}
使用https://www.npmjs.com/package/await and http://bookshelfjs.org/
您可以通过使用本机 Promise.all()
函数来避免额外的库,以下示例可能会对您有所帮助
let promise = new Promise((resolve, reject) => {
resolve("done!");
});
//User.where().fetch() return a promise
let chat = User
.where('id', req.body.application_id)
.fetch({
withRelated: ['company']
});
Promise.all([promise, chat])
.then(function (response) {
var data = {
promise: response[0],
chat: response[1]
}
console.log('in to reponse:-', response);
res.status(200).send(data);
})
.catch(function (err) {
res.status(400).json({
'error': "Error while fetching data"
});
});
我正在寻找一种方法来等待数据使用,下面是代码。
// Await this set of things
var getResponse = await('pr', 'chat');
let promise = new Promise((resolve, reject) => {
resolve("done!");
});
let chat = new Promise( (resolve, reject) => {
User
.where('id', req.body.application_id)
.fetch({withRelated: ['company']})
.then(function(result, err) {
resolve(result);
});
});
getResponse.keep('pr', promise);
getResponse.keep('chat', chat);
getResponse.then(function(response) {
console.log('in to reponse:-', response);
res.status(200).send(response);
},function(err) {
res.status(400).json({'error' : "Error while fetching data"});
});
在控制台上获得响应是 { pr: Promise { 'done!' }, chat: Promise { <pending> } }
浏览器响应
{
"pr": {},
"chat": {}
}
使用https://www.npmjs.com/package/await and http://bookshelfjs.org/
您可以通过使用本机 Promise.all()
函数来避免额外的库,以下示例可能会对您有所帮助
let promise = new Promise((resolve, reject) => {
resolve("done!");
});
//User.where().fetch() return a promise
let chat = User
.where('id', req.body.application_id)
.fetch({
withRelated: ['company']
});
Promise.all([promise, chat])
.then(function (response) {
var data = {
promise: response[0],
chat: response[1]
}
console.log('in to reponse:-', response);
res.status(200).send(data);
})
.catch(function (err) {
res.status(400).json({
'error': "Error while fetching data"
});
});