(async () => { })(); What Is This?
async function test() { (async () => { var a = await this.test1(); var b = await this.test2(a); var c = await this.test3(b); this.doThis(a,b,c);
Solution 1:
Both return a promise but they return different promises.
The first will return a promise that may resolve before this.test1()
's result resolves.
The second returns a promise that only resolves after the final call to this.doThis(a,b,c);
.
This has been called the "fire and forget pattern":
Often in application development you want a process to call another thread and continue the process flow, without waiting for a response from the called thread. This pattern is called the “fire and forget” pattern.
You can see this in
functionlogEventually(str) {
returnnewPromise((resolve) => {
setTimeout(() => {
console.log(str);
resolve(null);
}, 0);
});
}
asyncfunctiona() {
awaitlogEventually('in a 1');
awaitlogEventually('in a 2');
awaitlogEventually('in a 3');
returnawaitlogEventually('end of a');
}
asyncfunctionb() {
(async () => {
awaitlogEventually('in b 1');
awaitlogEventually('in b 2');
awaitlogEventually('in b 3');
})();
returnawaitlogEventually('end of b');
}
a();
b();
Post a Comment for "(async () => { })(); What Is This?"