如何使函数等待另一个函数在angular2中完成执行

时间:2017-01-02 09:03:53

标签: angular observable

我需要获取用户输入以继续执行功能,如何使该功能等待waitForUserInput()。

如果我可以使用observable解决这个问题,任何人都可以帮助我将observable集成到组件内定义的简单函数

这就是iam卡住的地方

 myFunction(){
    doSomeOperation();
    result=waitForUserInput(); // Here a prompt will be shown, 
    if(result==1)
    {
    operation1();
    }
    else if(result==2)
    {
    operation2();
    }
    else if(result==3)
    {
    operation3();
    }
 }
// This function will show a prompt and user can input values    
 waitForUserInput(){ 
    showUserInputPrompt();
    if(input==someValue1)
    {
    return 1;
    }
    else if(input==someValue2)
    {
    return 2;
    }
    else if(input==someValue3)
    {
    return 3;
    }
 }

这里我需要等到waitForUserInput()完成后再继续

2 个答案:

答案 0 :(得分:2)

那是不可能的。您无法在浏览器中暂停功能。 在浏览器中只有一个UI线程。如果你停止它,你的应用程序中就不会再发生任何事情,因此它根本不受支持。

您需要选择不同的策略来获得您想要完成的任务。

答案 1 :(得分:0)

如果您的被叫函数允许回调,您可以执行类似这样的操作=>

this.instance.saveEditData()来完成(this.CustomSave);

function CustomSave(){ }

CustomSave是父,我在其中调用saveEditData。但是改变逻辑只在saveEditData完成时才调用它。