我有以下代码片段。我面临的问题是,有时序列不被遵守,即在_doSomethingFirst((之前调用_doSomechingNext((。
<CustomModal
onDissmiss( ): { ( )=> {
executeInSequence( );
}
}
/>
private executeInSequence( ):void {
this._fun1( ).then(( ) => { this._fun2(); });
}
private async _fun1( ):void {
const result: IResultArray[] = await httpClient1.getData ();
if (!result) {
this._doSomethingFirst();
}
}
private async _fun2( ):void {
const result: IResultArray[] = await httpClient2.getData ();
if (!result) {
this._doSomethingNext();
}
}
知道为什么会发生这种情况吗?以及我如何确保对getData((的顺序和唯一一个等待调用的调用。
您应该有这样的return语句和async关键字;
private async _fun1( ) {
const result: IResultArray[] = await httpClient1.getData ();
if (!result) {
return this._doSomethingFirst();
}
}
private async _fun2( ) {
const result: IResultArray[] = await httpClient2.getData ();
if (!result) {
return this._doSomethingNext();
}
}