Javascript angular 4 promise then函数中的持久性存储使用
尝试在promise-then函数中使用角度持续性,但总是说未定义Javascript angular 4 promise then函数中的持久性存储使用,javascript,angular,Javascript,Angular,尝试在promise-then函数中使用角度持续性,但总是说未定义 import { Component, OnInit, Injectable } from '@angular/core'; import {Router} from "@angular/router"; import {PersistenceService, StorageType} from "angular-persistence"; export class ProcessingComponent implement
import { Component, OnInit, Injectable } from '@angular/core';
import {Router} from "@angular/router";
import {PersistenceService, StorageType} from "angular-persistence";
export class ProcessingComponent implements OnInit {
myfunc: any;
constructor(private PersistenceService: PersistenceService ){
}
ngOnInit() {
this.myfunc = new myfunction();
this.shaObj.generateIdentity().then(function (result, PersistenceService) {
console.log(PersistenceService.set('identityKey')); // getting undefined
}.bind(this.PersistenceService));
}
因此绑定服务似乎不起作用,如何将外部作用域“this”传递到“.then”函数中。您应该使用
this.injectableName
而不是直接使用ClassName
console.log(PersistenceService.set('identityKey'));
应该是
console.log(this.PersistenceService.set('identityKey'));
注意:根据指南,为避免混淆,使用cammelCase
作为注入依赖项
您还可以使用
箭头函数
的ES6 beauty,而不是使用.bind(this)
大吉大利,晚上吃鸡
constructor(private persistenceService: PersistenceService ){}
this.shaObj.generateIdentity().then((result, PersistenceService) => {
//Assuming you changed dependency name to `persistenceService`
console.log(this.persistenceService.set('identityKey'));
});