fixed SinglePromise reset order

This commit is contained in:
Niklas Kapelle 2024-10-18 16:37:46 +02:00
parent 5167533c6d
commit 9d6e8a366b
Signed by: niklas
GPG Key ID: 4EB651B36D841D16
2 changed files with 15 additions and 4 deletions

View File

@ -1,5 +1,7 @@
package lib;
import kernel.EndOfLoop;
using tink.CoreApi;
class SinglePromise<T> {
@ -15,6 +17,7 @@ class SinglePromise<T> {
public function request():Promise<T> {
if (this.inProgress) {
trace("Is progress");
return this.interalPromise;
}
@ -32,17 +35,21 @@ class SinglePromise<T> {
return this.interalPromise;
}
public function isRunning():Bool {
return this.inProgress;
}
public function resolve(val:T) {
if (this.inProgress) {
this.interalResolve(val);
this.inProgress = false;
this.interalResolve(val);
}
}
public function reject(err:Error) {
if (this.inProgress) {
this.interalReject(err);
this.inProgress = false;
this.interalReject(err);
}
}
}

View File

@ -42,19 +42,23 @@ class SingleTimeoutPromise<T> {
return this.interalPromise;
}
public function isRunning():Bool {
return this.inProgress;
}
public function resolve(val:T) {
if (this.inProgress) {
this.interalResolve(val);
this.inProgress = false;
this.timer.cancle();
this.interalResolve(val);
}
}
public function reject(err:Error) {
if (this.inProgress) {
this.interalReject(err);
this.inProgress = false;
this.timer.cancle();
this.interalReject(err);
}
}
}