I've got a strange problem.. FIrst, take a look at my code:
This one is where I use my await..
case "detail": {
const lineMessages = [];
let item = await this.getItem(postback.id);
let lineMessage = {
type: "text",
text: item.longDesc
};
lineMessages.push(lineMessage);
return new Promise(function(resolve, reject) {
if(lineMessages != []) {
resolve(lineMessages);
}
else {
let error = new Error("Cannot catch item ${postback.id}");
reject(error);
}
});
This is the getItem(id) method..
getItem(id) {
return Item.find({_id: id}).exec();
}
But it turns out the text key on my lineMessage is undefined..
Then, the lineMessage is LineMessages: [{"type":"text"}]
( I once logged it on my console)
Why await doesn't stop the execution in my case?
It seems it tries to look up item.longDesc
before item
is resolved (just my guess tho).
Please help