Angular 角度-如何使用带参数的箭头函数?

Angular 角度-如何使用带参数的箭头函数?,angular,typescript,Angular,Typescript,我有一个angular 4应用程序,我正在尝试编写一个动作队列。每个操作将在前一个函数完成后激发,并将获取其参数 public-activeRegistrationAndSync(){ 让ActionStopPerformerByOrder=[ ()=>this.registrationComponent.activeFormValidators.apply(null,参数), ()=>this.registrationComponent.register.apply(null,参数), ()

我有一个angular 4应用程序,我正在尝试编写一个动作队列。每个操作将在前一个函数完成后激发,并将获取其参数

public-activeRegistrationAndSync(){
让ActionStopPerformerByOrder=[
()=>this.registrationComponent.activeFormValidators.apply(null,参数),
()=>this.registrationComponent.register.apply(null,参数),
()=>this.autoLogin.apply(null,参数),
()=>this.postLogin.apply(null,参数),
()=>this.checkout.apply(null,参数)
];
设defer=newdeferred();
让我们承诺吧;
//建立一条供应链
ActionStopPerformerByOrder.forEach(action=>{
curPromise=curPromise
.然后(行动)
.catch(err=>this.error.emit(err));
})
//积极行动
defer.resolve();
}
出口类别延期{
承诺:承诺;
决议:(价值?:T |承诺)=>无效;
拒绝:(原因?:任何)=>无效;
构造函数(){
this.promise=新承诺((解决、拒绝)=>{
this.resolve=resolve;
这个。拒绝=拒绝;
});
}
}
  • 您可以像这样使用扩展运算符

    (…rest)=>console.log(rest)

  • 您可以使用
    bind
    功能

    函数func(/arguments/){console.log(this.arguments)}

    设a=func.bind(this)


  • 我建议您使用
    async/await
    组合并运行您的操作。很容易阅读,以下是基本思路,根据您的具体情况进行修改:

    async function activeRegistrationASync() {
      const actionsToPerformByOrder = [
        async (r) => {
          return Promise.resolve(3)
        },
        async (r) => {
          return Promise.resolve(r + 5)
        }
      ];
    
      let result;
      for (let action of actionsToPerformByOrder) {
        result = await action(result);
      }
      return result;
    }
    
    activeRegistrationASync().then((r) => {
      console.log(r);
    });
    

    “不支持论点”
    (argument)=>{…}
    箭头函数确实支持参数:
    (arg1,arg2)=>this.doSomethingWith(arg1,arg2)
    如果确实需要使用
    函数(){…}
    ,则可以定义
    let this=this之前,并在
    函数中使用
    that
    。我是否可以将一个函数的结果链接为下一个函数的参数,而不需要知道每个函数应该接收什么?我知道可以使用apply(null,arguments)完成,但是arguments不能与arrow函数一起使用。我想写一个类,它将构建一个可执行函数队列,每个函数结果将作为参数提供给下一个函数。但这正是我正在做的,我正在将一个函数的结果传递给下一个函数。不需要知道每个函数应该接收什么-你在这里的意思是什么?是的。非常感谢:-)我使用您编写的内容构建了一个带有addAction和execute的actionsQueue类functions@user3554268好吧,那就考虑接受我的回答吧)