-
Notifications
You must be signed in to change notification settings - Fork 165
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
MAGE-6 Fix: recommend.js get null from script when script loading bef… #1571
base: release/3.14.0-beta
Are you sure you want to change the base?
MAGE-6 Fix: recommend.js get null from script when script loading bef… #1571
Conversation
…ore definition configuration
Hello @sgeleon , thanks for bringing this to our attention. |
|
||
function checkerConfigLoading() { | ||
if (typeof algoliaConfig === 'undefined') | ||
setTimeout(checkerConfigLoading, '500') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@sgeleon This seems like potential for an endless loop. I'd be more interested in why algoliaConfig
object doesn't load when expected so we can be sure to properly load the dependency. Can you please provide the steps to recreate this scenario?
FWIW the underlying code is a bit old. The legacy use of the global window object for dependencies that we are trying to ensure load through RequireJS creates some challenges for us. It is not ideal and may be refactored in the future but we want to do it right. The more input you guys give us, the more it helps us to nail this stuff down! Feedback is welcome. 🙂
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hello @cammonro.
This seems like potential for an endless loop.
No, because RequireJS executes this script only once when loading require.js. The loop stops when the value is defined.
I'd be more interested in why algoliaConfig object doesn't load when expected so we can be sure to properly load the dependency. Can you please provide the steps to recreate this scenario?
In your setup, we don't see algoliaConfig. This value is not managed by RequireJS.
define([
'jquery',
'algoliaBundle',
'recommend',
'recommendJs',
'recommendProductsHtml',
'domReady!'
],function ($, algoliaBundle, recommend, recommendJs, recommendProductsHtml) {
In this case, we check the value of algoliaConfig, which is not controlled by RequireJS. This value might not be defined during script execution.
if (typeof algoliaConfig === 'undefined') {
return;
}
Hello @damcou. I created a new request. |
Hi.
I have seen your solution for when the configuration doesn't loading.
I think it’s not good because we can get other bugs if we use this module in other modules because we don’t have any guarantee that we will get object not null, for example:
require('Algolia_AlgoliaSearch/js/recommend.js',
I think you should add some checker for it.