有两种方法,想在角度5中的第一个方法完成后调用第二个方法

时间:2018-10-23 06:45:22

标签: angular

让我们说我有两种方法:

第一:this.a()

秒:this.b()

angular 5 中,我希望第二个方法的 执行首先完成 ,然后仅应执行下一个方法。

如何对同一个对象进行异步调用,即如何使用promise来实现它,或者还有其他方法可以在角度5中实现同一个调用?

2 个答案:

答案 0 :(得分:0)

基本上,您需要具有void以外的返回类型。您可以使用promise

a(): Promise<any>{
   return new Promise<any>((resolve, reject) => {
       // some async call
       let data = 123;
       //reject(new Error('Some error'));
       setTimeout(_ => resolve(data), 2000)
   });
}

b(): void{
   this.a().then(
       num => console.log(`${num} came from promise.`),
       err => console.log(err)
   );
}

Stackblitz example

答案 1 :(得分:-2)

function1(variable).then(function() {
    function2(variable2);
})