如何修复有角度的http帖子不等待金字塔后端响应

问题描述 投票:1回答:1

我使用ng build --prod构建角度。

输出到金字塔后端的静态文件夹中

在登录表单上,单击一个按钮,然后angular使http发布到金字塔后端。金字塔后端接收用户名和密码。生成jwt令牌并发送响应。

Angular不等待响应。

Angular使使用subscription和map()的http帖子可见。

创建jwt需要3秒钟左右。如果我不选择不制作jwt并从后端快速返回json,则angular会立即将其捕获。

如果金字塔后端的响应速度不够快,则订阅的用户将无法捕获数据或错误。似乎没有在订阅的回调函数中执行任何操作,因为好像立即取消了订阅一样。

如果金字塔由于任何问题而没有响应,则立即从订阅回调中捕获到错误,并在开发人员控制台日志中显示。

试图:我试图切换到异步,同样的问题。我通过outpush hash修复了固定的角度不处理路由。

这是代码的样子。

login.component.ts

login_button_pressed(username, password){
  console.log('Seen in console .log');
  this.auth.login(username, password)
  .pipe(first())
  .subscribe( data => {
     //do something with data },
   error => {
     //print error  
  });
   console.log(login function ended);
}


//pseudo code style.

auth.ts

login(username: string, password: string): Observable<user> {
    console.log('This is printed in developer console log');
    return this.http.post<any>('/route', {username, password})
    .pipe(map( returned_data => {

     console.log('this is never executed even though i see backend); 
     console.log('processing the two passed strings')
     //do something with returned data

     return returned_data
  });
}

在金字塔后端,我发送接收到的字符串并打印到后端的控制台,然后再发送响应。

我谈论的打印命令是出于调试目的

我使用ng build --prod构建角度。输出到登录表单上金字塔后端的静态文件夹中,单击一个按钮,然后angular使http发布到金字塔后端。金字塔后端...

angular pyramid
1个回答
0
投票

您可以看一下mdn asynchronous call。这是以下片段

© www.soinside.com 2019 - 2024. All rights reserved.