【发布时间】:2019-02-02 01:20:58
【问题描述】:
我试图在我的函数之外获得 promise 的值,但它返回 undefined
这是我尝试过的代码:
Home.ts
class Home{
dd:any;
constructor(public dbHelpr:DbHelperProvider){
}
getData(){
this.dbHelpr.getRecordById("51").then(function(res:any){
dd = res
console.log("dd in "+dd);
});
console.log("dd out "+dd);
}
}
DbHelperProvider.ts
getRecordById(_id){
return new Promise(resolve => {
this.db.get(_id).then(function (doc) {
resolve(doc);
}).catch(function (err) {
console.log(err);
resolve("fail");
});
})
}
我的日志显示: 在 abcdef 中添加
dd 未定义
我该如何解决这个问题?
提前致谢!
【问题讨论】:
-
你试过this.dd = res而不是dd = res吗?和像 console.log(this.dd); 这样的日志记录
-
我试过了,但同样的错误:(
-
您能详细说明为什么需要在异步函数之外使用 dd 值吗?你想在另一个函数中使用它还是?
-
对不起,console.log("dd out "+dd);以前可以工作,因为 getRecordById 是异步的
-
@SergeyRudenko 我正在从其他类调用 getData(),所以我希望将
dd的值返回给该类
标签: angular typescript ionic-framework ionic2 ionic3