>我有以下代码
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;
}
我的返回值始终为空。有人可以让我知道如何让这个函数返回一个值吗?谢谢你的帮助。
一个
你不能,承诺稍后会解决。 当您调用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));