如何使用Angular 2进行同步链调用?

时间:2018-04-09 07:23:25

标签: angular ecmascript-6 es6-promise

我有一个action1和action2方法。 action1方法创建项目结构,action2方法用数据填充此结构。所以首先我需要调用action1,当它完成时我需要调用action2。

有没有办法进行同步链调用?

startPoint(){

    action1();
    action2();

}



action1(){
   //create a project structure
   return "completed";
}

action2(){
   //fill project structure with data
   return "completed";
}

1 个答案:

答案 0 :(得分:1)

举个例子。

action1() {
    return new Promise((resolve, reject) => {
        // do something
        resolve(<your return value>);
    });
}
action2() {
    // Do something
}

action1().then((res) => {
    action2();
}).catch(() => {
    // error case when reject is called
});

另外,您可以在action1中return Promise.resolve(<value>);,并且如果出现错误,您也可以在承诺中使用reject()方法。