上一个函数完全执行后要运行的函数



我是新来的反应者,我陷入了困境。我正在调用这样一个函数中的函数:

submit = () => {
this.props.getValue();
this.props.resetValidation();
this.notify();
this.props.toggle();
this.props.disable();
this.props.actionCost();
//this.props.action();
// this.props.actionTable();
};

正在发生的情况是,所有函数都在同时运行,而没有一个函数得到完全执行。为什么不应该在第一个函数成功运行后才调用函数?

此外,在函数完全执行后,我如何一个接一个地运行函数?

请帮助

停止执行流的唯一方法是使用async/awaitgeneroator函数,即使是这些函数也只是"句法糖";在CCD_ 3之上。

您可能正在调用一个异步函数,并期望它";完整的";而不使用CCD_ 4。

另一种情况是调用内部使用异步调用(如axiosfetch)的函数,并使用回调进行回复。在这种情况下,执行将继续,稍后将调用回调,这就是我们调用它们的方式;回调";

例如:

console.log('before');
setTimeout(() => console.log('timer completed'), 1000);
console.log('after');

将导致:

before
after
timer completed

在这个例子中,我记录before,然后设置一个超时,在这里我提供一个稍后(1秒)执行的回调(一个简单的函数),同时执行流继续,并记录after。一旦计时器到达,系统将执行我的回调。

如果您想在timer completed之后执行after,则必须提供一个回调,该回调将在执行完成后调用。

像这样:

function logTimer(doAfter) {
setTimeout(() => {
console.log('timer completed');
doAfter();
}, 1000);
}
console.log('before');
logTimer(() => console.log('after'));

相关内容

  • 没有找到相关文章

最新更新