Я пытаюсь добавить обещание в функцию, у меня есть эта ошибка TypeError: sort_devices_name.then не является функцией, функция get_groups_devices вызывает sort_devices_name, а sort_devices_name - это функция, которую я хочу использовать в качестве обещания ,Обещание в функции
});
// Find devices object id with relation of groups
get_groups_devices();
}
});
function sort_devices_name() {
return new Promise(
function (resolve, reject) {
var d_ids = data.map(function (d) {
return ObjectId(d.d_id);
});
devices_lookup.find({"_id": {$in: d_ids}}).sort({"device_name": 1}).toArray(function (err, d_data) {
if (err) {
return res.send(JSON.stringify(err));
}
else {
var modify_data = [];
d_data.forEach(function (val) {
data.forEach(function (val2) {
if (val2.d_id == val._id) {
modify_data.push({g_id: val2.g_id, d_id: val._id});
}
});
});
resolve(modify_data);
}
});
});
}
// Find devices object id with relation of groups (if any) from devices group relation table.
function get_groups_devices() {
devices_group.find({"g_id": {$in: groups_ids}}, {
"d_id": 1,
"g_id": 1,
"_id": 0
}).toArray(function (err, d_data) {
d_data = sort_devices_name(d_data);
sort_devices_name.then(function (d_data) {
console.log(d_data);
if (err) {
return res.send(JSON.stringify(err));
} else {
Вы не вызываете свою функцию в настоящее время, а просто обращаетесь к объекту функции, который сам по себе не имеет метода 'then()'. вызовите функцию 'sort_devices_name(). then()'. – Sirko
@Sirko Спасибо, теперь он отлично работает. –