Return async requirejs 完成回调值到外部函数
Return async requirejs finish callback value to outside function
我有一个问题,我需要等到 requirejs 加载一些 "secondary" 依赖项,然后 return 一个计算对象到我的 requirejs 模块。
假设我知道我可以在第一个 define 语句中传递所有依赖项,是否有其他方法可以做到这一点?
示例:
define(
['require', 'jquery', 'underscore'],
function (require, $, _)
{
var fooBar = require(['foo', 'bar'], function(foo, bar)
{
return new FooBar(foo, bar);
});
return fooBar;
}
);
这个模块 return 给我一个 localRequire 回调,相反我想从第二个 require 语句中获取 return 值,所以我的 FooBar 对象。
我怎样才能实现类似的事情?
谢谢,如果我犯了错误,请原谅我的英语,我是意大利人..
define(function (require) {
var $ = require('jquery');
var _ = require('underscore');
var foo = require('foo');
var bar = require('bar');
return new FooBar(foo, bar);
});
以下代码使用 require 作为 SYNC 请求,但在浏览器中,如果依赖项在同一文件中定义或在调用 require 之前加载,则可以使用 SYNC 请求。
大多数时候有用 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);
}
);
其他解决方案是使用 Promises 来承诺您将 return 新对象:
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;
}
);
我有一个问题,我需要等到 requirejs 加载一些 "secondary" 依赖项,然后 return 一个计算对象到我的 requirejs 模块。
假设我知道我可以在第一个 define 语句中传递所有依赖项,是否有其他方法可以做到这一点?
示例:
define(
['require', 'jquery', 'underscore'],
function (require, $, _)
{
var fooBar = require(['foo', 'bar'], function(foo, bar)
{
return new FooBar(foo, bar);
});
return fooBar;
}
);
这个模块 return 给我一个 localRequire 回调,相反我想从第二个 require 语句中获取 return 值,所以我的 FooBar 对象。
我怎样才能实现类似的事情? 谢谢,如果我犯了错误,请原谅我的英语,我是意大利人..
define(function (require) {
var $ = require('jquery');
var _ = require('underscore');
var foo = require('foo');
var bar = require('bar');
return new FooBar(foo, bar);
});
以下代码使用 require 作为 SYNC 请求,但在浏览器中,如果依赖项在同一文件中定义或在调用 require 之前加载,则可以使用 SYNC 请求。 大多数时候有用 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);
}
);
其他解决方案是使用 Promises 来承诺您将 return 新对象:
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;
}
);