2017-03-01 66 views
0

在我的网页我有以下将要加载的脚本:一个全局对象后执行jQuery函数解析

<script src="~/js/dir/search.js"></script> 
<script src="~/js/dir/item.js"></script> 

里面search.js文件我用ES6全局范围内:

fetch(endpoint) 
    .then(blob => blob.json()) 
    .then(data => members.push(...data)); 

而且里面item.js我用这个脚本来显示members对象:

$(window).load(() => { 
    console.log(members); 
}); 

但它在控制台中打印undefined,如何确保search.js完全加载,然后items.js给出结果?

+0

注意'search.js'加载并执行,之前'item.js'一样。但我猜你的'fetch()'是异步的,不能及时完成。 –

+0

@FabianKlötzl是的,你觉得呢,有什么想法? – newbie

回答

1

你可以从一个文件暴露一个API来在另一个文件中注册一个额外的处理程序。

search.js:

var p = fetch(endpoint); 
p.then(…); 
window.extraHandler = function (fn){ 
    p.then(fn); 
} 

item.js:

extraHandler(function(){ 
    console.log(members); 
});