AngularJS中的HTTP承诺对象是什么?

Tan*_*jel 9 javascript angularjs angular-http angular-promise

虽然我正在使用AngularJS中的HTTP promise对象,但我没有一个明确的概念,即HTTP承诺对象实际上是什么,以及AngularJS中HTTP promise对象和传统对象之间的区别是什么!

请问有人解释一下吗?

JCr*_*121 10

Promise是异步操作的概念.基本上它代表了一个从现在到未来的任何时刻都可以使用的对象.

它有三种状态:

  • 有待
  • 完成(成功完成)
  • 拒绝(失败)

您可以使用两种方法处理Promise的状态,然后是()和catch().

then()如果成功则从异步调用中提供预期的对象,catch()将允许您处理错误.

您可以使用Promise的方案是在进行网络呼叫时,例如:

getData(): Promise<Array<string>> {
    return this.http.get("http://a-test-api.com/api/getdata").toPromise();
}
Run Code Online (Sandbox Code Playgroud)

然后你会像这样使用它:

this.getData().then(function (stringArray) {
        self.data = stringArray;
});
Run Code Online (Sandbox Code Playgroud)

您可以在此处找到有关此概念的更多信息:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Promise