承诺不按顺序返回值



你好,我是ionic的新手,

我想在后台从pouch-db获取数据。
经过一些研究,我发现承诺的概念将解决我的问题。

我想按照下面给出的顺序执行我的控制台日志 1、2 和 3

这是我的代码:

类:

class1{
method1(){
class2Provider.method2().then(function (result:any) {
console.log("3")
console.log("VSCP "+result);
this.navCtrl.push('InspectionPage',{'inspectnData':result});
})
}
}

提供商 1:

export class ModelProvider {
method2(){
return new Promise (resolve => {
this.dbHelpr.getRecord().then(function (result:any) {
console.log("2")
console.log("data for inspectId is -------------"+JSON.stringify(tempData));
resolve(result)
})
})
}
}

提供程序 2:

export class DbHelperProvider {
getRecord(){
return new Promise(resolve => {
this.db.get(_id).then(function (doc) {
console.log("1")
resolve(doc);
}).catch(function (err) {
console.log(err);
resolve("fail");
});
})

}
}

上面的代码首先执行日志 3 并显示错误

无法读取未定义的属性"navCtrl">

如何按所需顺序执行函数?

=>使用 Fat 箭头函数而不是function

class1{
method1(){
class2Provider.method2().then((result: any) => {
console.log("3")
console.log("VSCP " + result);
this.navCtrl.push('InspectionPage', { 'inspectnData': result });
})
}
}

最新更新