我是requirejs和AMD模块函数的新手,我试图从require调用中传递一个参数,但是我遇到了一些麻烦。我试图在一个必需的调用中将obj传递给fun方法。这需要调用在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不是函数
解决这个问题的任何线索?
PS:如果有更好的方法,请告诉我。
谢谢,
答案 0 :(得分:0)
这可以通过返回一个返回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;
}
}