我是 requirejs 和 AMD 模块函数的新手,我试图从 require 调用中传递参数,但我遇到了一些麻烦。我试图在对 fun 方法的 require 调用中传递 obj。此 require 调用在 define 方法中,如下面的代码所示。我遵循此博客中的说明:http://blog.novanet.no/4-strategies-for-passing-parameters-to-requirejs-modules/
define(['require'],function(require){
var obj= {name:'random'};
require({
config : {
'tagging' : obj
}
},['fun'],function(promise){
promise.then(function(ret){
//do something.
});
}
}
然后我想在下面的代码中使用传递的 obj 参数。 在 fun.js 中
//将obj传递给fun.js
define(['module','lie'],function(data,Promise){
var promise = new Promise(function(res,rej){
//do something
});
}
但是我在控制台上收到以下错误:
TypeError: depMaps.slice is not a function
有任何解决此问题的线索吗?
PS:另外如果有更好的方法,请告诉我。
谢谢,
最佳答案
这可以通过返回一个函数来轻松完成,该函数返回 promise 而不是直接返回 promise 。然后,您可以将数据传递给此函数以获取 promise ,并对 promise 和数据进行任何您想做的计算。
define(['require'],function(require){
var obj= {name:'random'};
var data = {
'tagging' : obj
}
require(['fun'],function(promiseGetter){
promiseGetter(data).then(function(ret){
//do something.
});
}
}
和 fun.js
define(['lie'],function(Promise){
var promise = new Promise(function(res,rej){
//do something
});
return function(data){
//DO whatever you want to do with data here
return promise;
}
}
关于javascript - 通过 define 中的 require 调用在 requirejs 中传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29367324/