Javascript 向外部函数返回异步requirejs finish回调值

Javascript 向外部函数返回异步requirejs finish回调值,javascript,requirejs,Javascript,Requirejs,我有一个问题,我需要等到requirejs加载一些“次要”依赖项,然后将计算对象返回到我的requirejs模块 假设我知道我可以在第一个define语句中传递所有依赖项,有其他方法可以做到这一点吗 例如: 定义( ['require'、'jquery'、'下划线'], 函数(需要,$,389;) { var fooBar=require(['foo','bar'],函数(foo,bar) { 返回新的FooBar(foo,bar); }); 返回fooBar; } );以下代码使用requi

我有一个问题,我需要等到requirejs加载一些“次要”依赖项,然后将计算对象返回到我的requirejs模块

假设我知道我可以在第一个define语句中传递所有依赖项,有其他方法可以做到这一点吗

例如:

定义(
['require'、'jquery'、'下划线'],
函数(需要,$,389;)
{
var fooBar=require(['foo','bar'],函数(foo,bar)
{
返回新的FooBar(foo,bar);
});
返回fooBar;
}

);以下代码使用require作为同步请求,但在浏览器中,如果依赖项在同一文件中定义或在调用require之前加载,则可以使用SYNC-request。 大多数情况下,使用javascript最小化是有用的

define('foo', ['dep1', 'dep2'], function(){
    return foo;
});
define('bar', ['dep1', 'dep2'], function(){
    return bar;
});

define(
    ['require', 'jquery', 'underscore'], 

    function (require, $, _) 
    {
        var foo = require('foo');
        var bar = require('bar');
        return new FooBar(foo, bar);
    }
);
另一种解决方案是使用承诺来承诺您将返回新对象:

define(
    ['require', 'jquery', 'underscore'], 

    function (require, $, _) 
    {
        var promise = new Promise(function(fulfill, reject){
            require(['foo', 'bar'], function(foo, bar) 
            {
                fulfill(new FooBar(foo, bar));
            });
        });

        return promise;
    }
);

谢谢我不知道我可以一次定义多个依赖项,以前加载的依赖项可以在以后加载的模块中重用!我是新来的!我已经知道常用的js方法,但出于某些原因,我需要避免使用这种方法。无论如何谢谢你!
define(
    ['require', 'jquery', 'underscore'], 

    function (require, $, _) 
    {
        var promise = new Promise(function(fulfill, reject){
            require(['foo', 'bar'], function(foo, bar) 
            {
                fulfill(new FooBar(foo, bar));
            });
        });

        return promise;
    }
);