我有以下代码
getNotesContent(){
this.svsDb.getNotes(this.order_info.orderid).then(
data=>{
console.log("the list of notes content...", data);
data.history.forEach( (notes:any)=>
this.noteList.push(
{
stack:[
{text: 'Date: ' + notes.created_date},
{text: 'Note/Comments: ' + notes.notes},
{ text: '--------------------------' },
]
}
)
)
});
return this.noteList;
}
我的返回值始终为空。有人可以让我知道如何让该函数返回值吗?谢谢您的帮助。
A
答案 0 :(得分:0)
您不能,一个承诺会在以后解决。当您调用getNotesContent()
函数时,它将在没有任何结果之前返回。看起来您正在返回数组,该数组将在以后填充,因此将具有您想要的值。但是,如果呼叫者需要等待并处理这些结果,那么您应该返回一个诺言,并且呼叫者应在其上呼叫then()
。
getNotesContent(){
return this.svsDb.getNotes(this.order_info.orderid)
.then(data => {
console.log("the list of notes content...", data);
data.history.forEach((notes:any) => {
this.noteList.push(
{
stack:[
{text: 'Date: ' + notes.created_date},
{text: 'Note/Comments: ' + notes.notes},
{text: '--------------------------'},
]
}
);
});
return this.noteList; // this will now be the promise results
});
}
// sample call
getNotesContent().then(noteList => console.dir(noteList));