Я новичок в обещаниях на JavaScript, так что спасибо за любую помощь. Мой код пытается получить доступ к базе данных из firebase и передать список в функции из main_page.js в index.js. Я возвращаю свой результат в обещании, и мне трудно получить доступ к значению в пределах.
main_page.js: функция UniqueCourse для извлечения курса из базы данных. Возвращает список курсов
// Get Unique Course ID
function UniqueCourse(t_id){
var courseArray = []
return Promise.resolve(
firebase.database().ref('/users').once('value',
function(snapshot) {
details = snapshot.val()
//console.log(snapshot.val());
for (var key in details) {
if (details.hasOwnProperty(key)) {
//console.log(key + " , " + details[key].username + "\n");
if (details[key].username == t_id){
console.log("Details of Array " + details[key].courses.split(','));
courseArray = details[key].courses.split(',');
return courseArray
}
}
}
})
).then(function(value){
return value;
})
}
main_page.js: функция экспорта UniqueCourse для использования вне
module.exports.UniqueCourse = (t_id) => {
return UniqueCourse(t_id)
}
index.js:Взять список, переданный из функции UniqueCourse в main_page.js
Promise.resolve(main_page.UniqueCourse(req.body.username)).then(function(value){
console.log(value);
})
console.log (значение) из index.js должен содержать список курсов из UniqueCourse (t_id). Тем не менее, я получаю объект обещания, показанный в console.log (value). Мне трудно получить доступ к списку из объекта обещания.
Консольный вывод
Details of Array CZ4047,CZ3003
DataSnapshot {
node_:
ChildrenNode {
children_:
SortedMap { comparator_: [Function: NAME_COMPARATOR], root_: [LLRBNode] },
priorityNode_:
ChildrenNode {
children_: [SortedMap],
priorityNode_: null,
indexMap_: [IndexMap],
lazyHash_: '' },
indexMap_: IndexMap { indexes_: [Object], indexSet_: [Object] },
lazyHash_: null },
ref_:
Reference {
repo:
Repo {
repoInfo_: [RepoInfo],
app: [FirebaseAppImpl],
dataUpdateCount: 2,
statsListener_: null,
eventQueue_: [EventQueue],
nextWriteId_: 1,
interceptServerDataCallback_: null,
onDisconnect_: [SparseSnapshotTree],
persistentConnection_: [PersistentConnection],
stats_: [StatsCollection],
server_: [PersistentConnection],
statsReporter_: [StatsReporter],
transactionQueueTree_: [Tree],
infoData_: [SnapshotHolder],
infoSyncTree_: [SyncTree],
serverSyncTree_: [SyncTree],
__database: [Database] },
path: Path { pieces_: [Array], pieceNum_: 0 },
queryParams_:
QueryParams {
limitSet_: false,
startSet_: false,
startNameSet_: false,
endSet_: false,
endNameSet_: false,
limit_: 0,
viewFrom_: '',
indexStartValue_: null,
indexStartName_: '',
indexEndValue_: null,
indexEndName_: '',
index_: PriorityIndex {} },
orderByCalled_: false },
index_: PriorityIndex {} }
Ожидаемый консольный вывод
Details of Array CZ4047,CZ3003
[CZ4047,CZ3003]