Typescript:在类之间动态传递值

cclgggtu  于 2023-05-01  发布在  TypeScript
关注(0)|答案(1)|浏览(148)

更新日期:
我有个 cucumber 测试

Given I set some value
Then I print it

我有一个一级如下

export class XXX {

  searchedValue: string;

  @given("I set some value")     
  public async getInfoData(){
    this.searchedValue = await getData.getPlayersId();
  }
}

还有另一个班

export class YYY {
  const xxx = new XXX();
            
  @then("I print it")
  public async showData(){
    console.log( await xxx.searchedValue)
  }
}

但是当执行这个I print it步骤时,它会给我undefined,并且value没有传递。有人能帮帮忙吗

9o685dep

9o685dep1#

你可以这样做:

export class XXX {
  searchedValue: Promise<string> = Promise.resolve('');
    
  public async getInfoData() {
    this.searchedValue = getData.getPlayersId();
  }
}

并且:

export class YYY {
  const xxx = new XXX();
        
  public async showData() {
    console.log(await xxx.searchedValue)
  }
}

然后:

const y = new YYY();
await y.showData(); // will print empty string
y.xxx.getInfoData(); // who ever where ever calls that
await y.showData(); // will print whatever is returned by getPlayersId() when ever available

请记住,在有人调用getInfoData()之前,showData()不会等待结果。你必须掌握这个概念,什么时候/什么Promise被创建和解析。
但总的来说,你的设计不太可行。

相关问题