比如
aModel = {
user_id: String,
file_name: String,
page_id: Number
}
fileSchema = new Schema({
page_id: Number,
key: String,
doc: String,
title: String,
sym: String
});
bModel = {
user_id: String,
file_name: String,
origin_file: String,
new_file: [fileSchema]
}
已知user_id,file_name,page_id,model是異步的,怎麼同時(shí)找這兩個(gè)model,
得到兩個(gè)結(jié)果後再進(jìn)行下一步
溫故而知新,可以為師矣。 博客:www.ouyangke.com
程式碼如下,其實(shí)我覺得寫的一點(diǎn)也不優(yōu)雅...
var aDocs ,bDocs =null ;
aModel.find({ user_id:xx , file_name:xx , page_id:xx})
.then(function(docs){
aDocs = docs;
return bModel.find({ user_id:xx , file_name:xx , page_id:xx}) })
.then(function(docs){
bDocs = docs ;
other codes
})
如果你需要他們並發(fā)執(zhí)行的話,可以用Promise
const query1 = aModel.find(query)
const query2 = bModel.find(query)
Promise.all([query1, query2]).then(rs => {})
如果不需要並發(fā)進(jìn)行,可以同步進(jìn)行的話,可以用 yield
或 async/await
const query1 = yield aModel.find(query)
const query2 = yield bModel.find(query)
// 需要node7以上
const query1 = await aModel.find(query)
const query2 = await bModel.find(query)
樓上當(dāng)然是不太優(yōu)雅的 你需要的是async/await 所以把node升級(jí)到7.6以上吧