Skip to content

Commit 5920e2c

Browse files
committed
fix: Use ColdBox Async manager over built in async loops
1 parent 3173e92 commit 5920e2c

File tree

1 file changed

+31
-7
lines changed

1 file changed

+31
-7
lines changed

models/BaseEntity.cfc

Lines changed: 31 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,14 @@ component accessors="true" {
4141
inject ="box:interceptorService"
4242
persistent="false";
4343

44+
/**
45+
* The ColdBox AsyncManager.
46+
*/
47+
property
48+
name ="_async"
49+
inject ="box:asyncManager"
50+
persistent="false";
51+
4452
/*===========================================
4553
= Metadata Properties =
4654
===========================================*/
@@ -1394,15 +1402,31 @@ component accessors="true" {
13941402
*
13951403
* @return quick.models.BaseEntity;
13961404
*/
1397-
public any function loadRelationship( required any name, boolean force = false, boolean parallel = false ) {
1405+
public any function loadRelationship(
1406+
required any name,
1407+
boolean force = false,
1408+
boolean parallel = false
1409+
) {
13981410
arguments.name = arrayWrap( arguments.name );
1399-
arguments.name.each( ( n ) => {
1400-
if ( force || !isRelationshipLoaded( n ) ) {
1401-
var relationship = invoke( this, n );
1402-
relationship.setRelationMethodName( n );
1403-
assignRelationship( n, relationship.get() );
1411+
if ( arguments.name.len() > 1 && arguments.parallel ) {
1412+
for ( var n in arguments.name ) {
1413+
if ( arguments.force || !isRelationshipLoaded( n ) ) {
1414+
variables._async.newFuture( () => {
1415+
var relationship = invoke( this, n );
1416+
relationship.setRelationMethodName( n );
1417+
assignRelationship( n, relationship.get() );
1418+
} );
1419+
}
1420+
}
1421+
} else {
1422+
for ( var n in arguments.name ) {
1423+
if ( arguments.force || !isRelationshipLoaded( n ) ) {
1424+
var relationship = invoke( this, n );
1425+
relationship.setRelationMethodName( n );
1426+
assignRelationship( n, relationship.get() );
1427+
}
14041428
}
1405-
}, arguments.name.len() > 1 && arguments.parallel );
1429+
}
14061430
return this;
14071431
}
14081432

0 commit comments

Comments
 (0)