为什么服务不返回编码的字符串?

时间:2017-12-26 18:22:02

标签: angular typescript rxjs

我提供编码密码的服务。此服务使用ts-md5

import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Observable';

import { Md5 } from 'ts-md5/dist/md5';


@Injectable()
export class HashService {

  constructor() { }

  generate(str): Observable<string>{
    const h = Md5.hashStr(str);
    console.log(h, typeof h);
    return h;
  }

}

从组件i订阅服务:

this.hashService.generate(this.form.value.password).subscribe((hash) => {
  console.log(hash);
});

但是控制台显示会出现以下错误消息:

  

src / app / shared / services / hash.service.ts(15,5)中的错误:错误TS2322:   输入'string | Int32Array'不能分配给'Observable'类型。   类型'string'不能分配给'Observable'

类型

我尝试指定一种更常见的类型:

generate(str): Observable<any>{

但问题仍然存在

1 个答案:

答案 0 :(得分:2)

New-AzureRmResourceGroupDeployment -ResourceGroupName dev -TemplateFile C:\Users\vv\ARMTemplates\Clustercopy.json -TemplateParameterFile C:\Users\vv\ARMTemplates\paramFile.params.json 不返回Observable,它返回一个字符串。您不需要返回可观察和订阅。您只需返回字符串

即可
Md5.hashStr()