Как вы используете функции обратного вызова (функция в последнем параметре в findOne), чтобы возвращать результаты, я предлагаю вам использовать функцию обратного вызова.
Чтобы получить результат, вы можете сделать что-то вроде:
function myFunction(myParams, callback){
_dataDictionary.findOne(myParams, function(err,result){
return callback(err,result);
});
}
Тогда вы можете назвать «MYFUNCTION» в другом месте, как:
...
myFunction(params, function(err,result){
//do something with the result)
}
OBS1: если Титулы являются еще одной функцией , «уродливый» способ сделать это - использовать вложенные обратные вызовы, которые обычно являются «antipattern».
function myFunction(myParams, callback){
_dataDictionary.findOne(myParams, function(err,result1){
_anotherAsyncFunction(result1.params, function(err,result2){
//do something with result2 and callback it.
});
});
}
OBS2: Вы можете избежать этого антипаттерн используя такие библиотеки async метод «водопад» или bluebird Promise Library «затем» методы.
Возможно, вы используете ... асинхронный обратный вызов. – Hydro
Вы называли функцию где-то? – Marciano
это 'полный' код, я использую Model.observe ('доступа', функция (CTX, рядом, Си-Би) { вар _dataDictionary = loopback.findModel ('DataDictionary'); найдено = _dataDictionary.findOne (findByModelNameQuery функция (эээ, результат) { , если (результат) { если (result.record) { нашел = истинный } еще { найден = ложь }} возвращение нашли }); ... set query.where на основе найденного значения ..... ctx.query.where = query.where } next(); }); –