【问题标题】:Passing parameters in requirejs via a require call in define通过define中的require调用在requirejs中传递参数
【发布时间】:2015-06-04 17:09:20
【问题描述】:

我是 requirejs 和 AMD 模块函数的新手,我正在尝试从 require 调用中传递一个参数,但我遇到了一些麻烦。我正在尝试将 obj 传递给 fun 方法的 require 调用。此 require 调用位于定义方法中,如下面的代码所示。我按照此博客的说明进行操作: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:另外如果有更好的方法,请告诉我。

谢谢,

【问题讨论】:

  • 你想通过提供{ config : { 'tagging' : obj } } 来要求调用来做什么
  • 我想将“obj”传递给 fun.js(并将其用作数据)。在那里我会做一些计算。这个“obj”是我在调用函数中计算的。
  • 我使用这个链接作为参考,很抱歉没有在问题中提供它。链接:blog.novanet.no/…
  • 您能否编辑您的问题并通过添加您想要发生的事情来使其更清楚......您想在哪里使用您的数据。在代码中添加...
  • 我希望澄清这个问题,并为听起来幼稚而道歉。 :)

标签: javascript requirejs amd


【解决方案1】:

这可以通过返回一个返回承诺的函数而不是直接返回承诺来轻松完成。然后,您可以将数据传递给此函数以获取 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;
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-03
    • 2013-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多