以异步方式设置函数参数

Set function parameters in an asynchronous way

本文关键字:函数 参数 设置 方式 异步      更新时间:2023-09-26

我有以下函数,我发现有时在没有params.name集的情况下调用函数launch。我不太擅长异步函数,所以我想知道这是否是因为setName不一定在调用启动之前返回?那么,在初始化self.params时,将函数调用放在三进制中会有帮助吗?

projectLaunch: function(options) {
  var self = this;
  if (options.name === null || options.name === "undefined") {
    var name = self.setName();
  } else { 
    var name = options.name;
  };
   self.params = {
     name: name
   };
  launch(self.params);
},
setName = function() {
  return encodeBase64(User.name, Project.name)
}

这都是一个较大对象的一部分,函数projectLaunch是从外部调用的。

这里没有异步(我没有您的encodeBase64的实现,但我不明白为什么它是异步的(。

但这并没有将函数分配给任何名称,也没有将其称为:

function(options) {
...
}

所以launch不能从我们看到的代码中调用。

如果你想制作IIFE,请将其修复为

(function(options) {
...
})({});

如果您希望options.name中有一个非空字符串,那么使用传递的值或其他值的最简单解决方案是:

var name = options.name || self.setName();