0
次のコードでは、q.jsを使用して生徒の詳細を取得しています。フェッチされたカテゴリと都市が変数studentdetails
にマップされていないことを除いて、すべてが正しく機能します。それは、メールクエリによって取得された詳細(名前、電子メール、id、dob)のみを含んでいます。どこが間違っていますか?どんなリードも高く評価されます。q.js約束の使用中の問題
//fetches category of student
var getJobCategories = function(student) {
var deferred = Q.defer();
var categoryquery = 'select c.name,c.id from category c,student_category sc where xxxx';
db.query(categoryquery, function(err, categories, fields) {
if(categories.length == 0) {
student.categories = "NA";
} else {
student.categories = categories;
}
console.log(student)//prints details with categories
deferred.resolve();
});
return deferred.promise;
}
//fetches city of student
var getCurrentCity = function(student) {
var deferred = Q.defer();
var cityquery = 'select l.name,l.id from location l ,student_location sl where xxxx';
db.query(cityquery, function(err, city) {
if(city.length == 0) {
student.currentcity = "NA";
} else {
student.currentcity = city;
}
console.log(student)//prints details with city
deferred.resolve();
});
return deferred.promise;
}
var query='select name,email,id,dob from student limit 1,10';
db.query(query, function(err1, studentdetails) {
var promise1=studentdetails.map(function(student){
var result=getJobCategories(student)
});
var promise2=studentdetails.map(function(student){
getCurrentCity(student)
});
var allpromises= Q.all([
promise1,promise2
]);
Q.allSettled(allpromises)
.then(function (results) {
next(null,{
result: studentdetails,
msg: "Fetched successfully"
});
});//then
});//query
をあなたの.MAP無名関数は 'undefined'(ノーreturn文) –
@JaromandaXを返している:どのように私はそれを修正しますか? –
それらの関数呼び出しによって返された値を返す*かもしれません - しかし、一般的にコードはかなり複雑で畳み込まれている必要があります –