javascript - 通过 define 中的 require 调用在 requirejs 中传递参数

标签 javascript requirejs amd

我是 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/

相关文章:

javascript - Noty 与 RequireJS

javascript - Internet Explorer 中模块的加载超时

jQuery .serializeArray() 返回空数组

javascript - 为什么串联的 RequireJS AMD 模块需要加载程序?

javascript - 使用提交的 addEventListener 不起作用

javascript - 选择 :after element not working in Jquery selector

javascript - Jasmine 和 requireJs - 不匹配的匿名 define() 模块 :

javascript - requirejs:有没有办法设置多个位置来搜索 1 个资源

javascript - Protractor 找不到具有 id 的元素

Javascript 数组相等失败