.then处理程序被无序调用

时间:2016-08-31 19:35:54

标签: http angular promise

我的最终目标是将一大块数据库分配给基于类的对象。为此,我在.then()函数的帮助下利用打字稿中的promises来链接它们。但是我遇到了砖墙。

return(this.httpService.post(someurl, somepayload, someheaders)
  .toPromise()
  .then(response => response.json())
  .then(MyCustomClass.function(MyObject)));

但是,当此代码在获得.then(MyCustomClass.function(MyObject))之前执行response.json()时会导致程序出现问题。

我的问题是,为什么它们按照这个顺序发生,有什么方法可以强迫它们按顺序执行?

1 个答案:

答案 0 :(得分:3)

您正在调用MyCustomClass.function(MyObject),并将返回的值传递给then()。你真正想要的是传递一个函数,当被调用时,它将执行MyCustomClass.function(MyObject)

.then(() => {
  MyCustomClass.function(MyObject);
}));