我们假设您定义了一个类似下面的变量(snackbar
)。它可以通过this
的Angular类的其余部分访问,但不能在promises的回调中访问。我使用的是AngularFire 5.
export class SomeComponent implements OnInit {
constructor(private snackbar: MatSnackBar, private afs: AngularFirestore) {}
//Promise function
this.afs.doc(path).set({
...some code
}).then(function(docRef){
this.snackbar.open('Snackbar message', 'OK'); //Sanckbar unreachable
});
//Regular function
this.snackbar.open('Snackbar message', 'OK'); //Sanckbar works fine
}
有人会如何从then
内部获取这些变量?或者这是不可能的?
答案 0 :(得分:2)
这是一个JavaScript"功能"
使用
}).then((docRef) =>{
而不是
}).then(function(docRef){
另见https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions