Skip to content

Commit

Permalink
refactor(street-service): make searchMultiple a ec-task
Browse files Browse the repository at this point in the history
  • Loading branch information
derrabauke authored and czosel committed Jul 17, 2024
1 parent d6d35ff commit 9b4d28b
Showing 1 changed file with 6 additions and 5 deletions.
11 changes: 6 additions & 5 deletions addon/services/street.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { inject as service } from "@ember/service";
import { task } from "ember-concurrency";
import { restartableTask, task } from "ember-concurrency";
import Street, { StreetList } from "ember-ebau-gwr/models/street";

import GWRService from "./gwr";
Expand Down Expand Up @@ -50,7 +50,8 @@ export default class StreetService extends GWRService {
this.cachedLanguageOverrides = new Set([]);
}

async searchMultiple(query, useCachedLanguagesOnly) {
@restartableTask
*searchMultiple(query, useCachedLanguagesOnly) {
let results = [];

for (const lang of useCachedLanguagesOnly
Expand All @@ -71,7 +72,7 @@ export default class StreetService extends GWRService {
});
}

results = await Promise.allSettled(
results = yield Promise.allSettled(
results.map(async ({ lang, result }) => {
return { lang, result: await result };
}),
Expand All @@ -97,9 +98,9 @@ export default class StreetService extends GWRService {
// the search), we continue searching only with the languages for which we
// previously received results.
if (lastQueryString && currentQueryString.includes(lastQueryString)) {
return this.searchMultiple(query, true);
return this.searchMultiple.perform(query, true);
}
this.resetCachedLanguages();
return this.searchMultiple(query);
return this.searchMultiple.perform(query);
}
}

0 comments on commit 9b4d28b

Please sign in to comment.