Javascript angular 4 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

尝试在promise-then函数中使用角度持续性,但总是说未定义

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'));
});