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

如何使一个函数在angular2中等待另一个函数完成执行,angular,observable,Angular,Observable,我需要获得用户输入才能继续执行function,如何使函数等待waitForUserInput() 如果我能用观测值解决这个问题,有人能帮我将观测值集成到组件内部定义的简单函数中吗 这就是我被困的地方 myFunction(){ doSomeOperation(); result=waitForUserInput(); // Here a prompt will be shown, if(result==1) { operation1(); }

我需要获得用户输入才能继续执行function,如何使函数等待waitForUserInput()

如果我能用观测值解决这个问题,有人能帮我将观测值集成到组件内部定义的简单函数中吗

这就是我被困的地方

 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()完成后才能继续进行,这是不可能的。您不能在浏览器中暂停函数。 在浏览器中只有一个UI线程。如果停止它,应用程序中将不再发生任何事情,因此根本不支持它


你需要选择不同的策略来实现你想要的目标。

这是不可能的。您不能在浏览器中暂停函数。 在浏览器中只有一个UI线程。如果停止它,应用程序中将不再发生任何事情,因此根本不支持它


您需要选择不同的策略来实现您想要实现的目标。

如果您调用的函数允许回调,您可以执行如下操作=>

this.instance.saveEditData().done(this.CustomSave)

函数CustomSave(){ }


CustomSave是父级,我在其中调用了saveEditData。但是更改了逻辑,使其仅在saveEditData完成时调用。

如果调用的函数允许回调,则可以执行如下操作=>

this.instance.saveEditData().done(this.CustomSave)

函数CustomSave(){ }


CustomSave是父级,我在其中调用了saveEditData。但是更改了逻辑,使其仅在saveEditData完成时调用。

您的第一个函数反复调用
waitForUserInput()
;如果我想要选项3,我必须输入3三次。目的是传达想法你也没有真正成功!然后我建议你需要改进你对“it”的使用(因为你现在把与这篇文章互动的人和……it混淆了)和你的反馈(因为这既不具体也不友好)。你不能告诉人们什么时候可以,什么时候不能使用评论;如果你不想输入,不要在公共的、由社区主持的网站上发布。我理解你的沮丧。您能否展示当前实现的一个示例,以演示您试图解决的问题?这可能比询问特定的解决方案(参见示例)更有成效。您的第一个函数反复调用
waitForUserInput()
;如果我想要选项3,我必须输入3三次。目的是传达想法你也没有真正成功!然后我建议你需要改进你对“it”的使用(因为你现在把与这篇文章互动的人和……it混淆了)和你的反馈(因为这既不具体也不友好)。你不能告诉人们什么时候可以,什么时候不能使用评论;如果你不想输入,不要在公共的、由社区主持的网站上发布。我理解你的沮丧。您能否展示当前实现的一个示例,以演示您试图解决的问题?这可能比询问某个特定的解决方案(参见示例)更有成效。有什么方法可以让它变得可观察吗?waitForUserInput()我不明白你认为可以为你带来什么。请更改您的问题,并描述您试图解决的实际问题。有什么方法可以让它变得可见吗?waitForUserInput()我不明白您认为可以为您带来什么。请更改您的问题,并描述您试图解决的实际问题。