在函数内部保持流量控制,直到它完成所有任务:Angular2

时间:2016-11-17 08:41:19

标签: angular

我要求将Promise的返回值存储到全局变量中,我正在尝试以下方式 -

this.getData().then(data => {
     this.gloabalData = data;       
});
// Doing Operation with globalData

但问题是在用数据更新globalData的值之前,它采用了globalData的默认值。这意味着在处理getData操作之前,控件会关闭并使用之前的globalData值。那么,在完成所有任务之前,有没有办法在getData函数中保持控件?

1 个答案:

答案 0 :(得分:1)

这是不可能的。

何时

// Doing Operation with globalData
达到

但尚未有data

data => {
 this.gloabalData = data;
}

是您在then()完成结果时传递给getData()的函数。

// Doing Operation with globalData

getData()完成之前执行loooooong(如果是服务器调用)。

只做

this.getData().then(data => {
     this.gloabalData = data;       
     // Doing Operation with globalData
});

this.getData().then(data => {
     this.gloabalData = data;       
}).then(data => {
// Doing Operation with globalData
});