为什么异步等待与Angular @Action不兼容

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么异步等待与Angular @Action不兼容相关的知识,希望对你有一定的参考价值。

这可行,但是如果可能,我想在链中添加更多操作。

this.store.dispatch(new UploadPendingFiles(pendingFiles));
this.actions$.pipe(ofActionSuccessful(UploadPendingFiles)).subscribe(() => 
    alert('UploadPendingFilesComplete');
    this.store.dispatch(new CreateEmailLink(this.getPayload())).subscribe(
        () => 
            this.sent.emit('true');
        ,
        (error) => 
            console.log(error);
            this.errors$.next(error.messages);
        
    );
);

希望使用更多异步等待方式的这种样式,但是会在错误的时间触发事件。

this.store.dispatch(new UploadPendingFiles(pendingFiles));
    alert('UploadPendingFilesComplete');
// Need alert to proc here
    await this.actions$.pipe(ofActionSuccessful(UploadPendingFiles));
    // await Another @Action
    await this.store.dispatch(new CreateEmailLink(this.getPayload()));
// Alert procs here at the moment

@ Action的摘要

 @Action(UploadPendingFiles)
    uploadPendingFiles(ctx: StateContext<DriveStateModel>, action: UploadFiles) 
     return this.uploads.start(action.files, config).pipe(
            tap((response) => 


答案

异步/等待只是与Promise一起使用的语法。您不能将其与Observable

之类的其他任何东西一起使用

以上是关于为什么异步等待与Angular @Action不兼容的主要内容,如果未能解决你的问题,请参考以下文章

Angular`ngOnInit`中的异步/等待

Angular 2如何让子组件等待异步数据准备好

在启动 Angular JS 之前等待异步任务完成

在 AngularJS 中使用 angular.forEach 实现异步等待

text Angular 2如何使子组件等待异步数据准备就绪

量角器:失败:超时等待异步角度任务在11秒后完成