- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我想创建一个从服务器返回 token 的函数,但是 http.post()
在我的函数返回 token 后得到响应。
我如何在返回 token 之前等待 http.post()
。
我的代码:
import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
@Injectable()
export class ServerConnectionService{
constructor( private http : Http) { }
token : string;
Login(Password : string, Username : string, ServerRootURL : string) : string
{
let url = ServerRootURL + "api/AdminApp/RegisterToken";
this.http.post(url, { "Username": Username, "Password": Password }).toPromise()
.then(res => this.token = res.json())
.catch(msg => console.log('Error: ' + msg.status + ' ' + msg.statusText))
return this.token;
}
}
提前谢谢你。
最佳答案
实际上你不能等待异步代码并从中返回一些东西。当你使用 promise 时,你需要使用 then
able 函数并编写与结果相关的其余逻辑它在 then
中起作用。在你的情况下它将是
Login(Password : string, Username : string, ServerRootURL : string): Promise<string> {
let url = ServerRootURL + "api/AdminApp/RegisterToken";
return this.http.post(url, { "Username": Username, "Password": Password }).toPromise()
.then(res => this.token = res.json())
.catch(msg => console.log('Error: ' + msg.status + ' ' + msg.statusText))
}
你需要像这样使用它
Login('password', 'username', 'http://localhost:8081').then(token => your logic here)
关于typescript - 如何在 TypeScript 中等待 Http 应答 - Angular 5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49435449/
我正在研究直径协议(protocol)。我在直径堆栈重新启动时遇到有关处理请求/应答/ session 的问题,因此我想知道哪些参数存储在数据库中以供直径堆栈重新启动时进一步使用? Session_I
我正在学习 SOAP,并创建了一个非常小的 CGI 脚本,该脚本在 Apache 上运行,将提供一小组功能。 #!/usr/bin/perl use SOAP::Transport::HTTP; SO
我是 C# 新手,我需要发送 HTTP GET 请求并阅读答案。我熟悉 Java 并且很容易做到 URLConnection 类,但我不知道在 c# 中。有人可以帮忙吗? 最佳答案 最简单的方法是使用
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 1 年前。
我想创建一个从服务器返回 token 的函数,但是 http.post() 在我的函数返回 token 后得到响应。 我如何在返回 token 之前等待 http.post()。 我的代码: impo
此处引用 developer site & call recording android 10尝试录制音频文件并将其保存到其本地目录路径,我使用 AccessibilityService 来实现它在
我是一名优秀的程序员,十分优秀!