如何在 Angular 2 测试中的 fixture.whenStable 上使用 await

Posted

技术标签:

【中文标题】如何在 Angular 2 测试中的 fixture.whenStable 上使用 await【英文标题】:How to use await on fixture.whenStable in Angular 2 Tests 【发布时间】:2017-09-18 17:30:52 【问题描述】:

虽然whenStable 返回了一个promise,但我不能使用await。

下面是我的 tsconfig

"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es5",
"typeRoots": [
  "node_modules/@types"
],

我正在使用"typescript": "^2.1.5"

【问题讨论】:

消息不言自明,让你的函数异步。 如果有一种方法可以让 'it' 异步运行,这样我们就可以使用 await 【参考方案1】:

如错误消息中所述:'await' 仅允许在异步函数中使用。当你想使用await时,你必须用async关键字标记外部函数。

// example

const myAsyncFunction = async () => 
   // ... some code
   await fixture.whenStable();
   // ... some code

当您使用 async 关键字标记任何函数时,它会返回一个承诺。查看this question 以更好地解释 async/await。

【讨论】:

以上是关于如何在 Angular 2 测试中的 fixture.whenStable 上使用 await的主要内容,如果未能解决你的问题,请参考以下文章

我如何在conftest.py中设置会话详细信息以提高产量以及pytest中的fixture?

Angular-fixture.debugElement.query(By.directive(IsRouteDirective)找不到宿主元素

Angular 测试中的 fakeAsync 和 async 有啥区别?

Angular 2+,异步测试和 setTimeout

如何在不调用 fixture.detectChanges() 的情况下绑定模板?

仿真中的Fixture在机器人工作站中通常做啥用