是否有可能将承诺的结果作为论据传递给 IIFE
Is it possible to pass the result of a promise as an argument to IIFE
我一直在重构一些使用 IIFE 来获取和启动一组值的旧代码。
var exampleInitiate = (function exampleInitiate(){
..call some backend service
})();
现在,根据新的要求,我必须用一个参数调用同一个IIFE,这个参数实际上是承诺的结果,它本身在很久以后被调用。我知道IIFE会立即调用,即使我得到了承诺的结果,我还能再次调用IIFE吗?我知道 IIFE 只运行一次。
我认为最好不要在这里使用 IIFE,因为它不适合这种情况。这是正确的,还是确实有办法调用从承诺传递参数值的 IIFE?
如果我理解正确,你可以有几个选项。首先,你可以像这样将参数传递给 IIFE:
var myPromise = getPromise();
var exampleInitiate = (function exampleInitiate(promise){
promise.then(function() { ... });
..call some backend service
})(myPromise);
但我不会说这种方式很清楚。我建议删除 IIFE 并像往常一样使用承诺:
getSomeBackEndResponse().then(function (data) { ... })
编辑:如果你的IIFE返回承诺本身,那么是的,我认为你不能再次将函数的结果传递给它自己,因为IIFE被调用一次。重新思考这段代码的逻辑。
相关文章:
- 有可能过滤来自嵌入式YouTube的声音吗
- Livereload for node.js.有可能吗
- 有可能在来自链接的警报中有一个值吗
- 有可能通过sessionID获得快速会话吗
- 正在对已提取的文档进行填充.有可能吗?如果有,怎么做
- 有可能得到一个大整数实例的自然日志吗
- Ajax与jQuery同步.有可能吗
- 如何使一个Math.random数组元素比另一个数组元素更有可能被选中
- 有可能隐藏同行吗;强制转向/继电器时相互IP
- 如何使用javascript从同一浏览器下的其他页面获取URL?有可能吗
- JavaScript在变量中存储操作?有可能吗
- 我有可能防止黑客使用网络控制台用JavaScript重复调用upvote(AJAX)函数吗
- 有可能过滤extjs图表吗
- 有可能将SYSTEMJS与REQUIREJS结合起来吗
- 有可能让两个变量指向同一个对象吗?(javascript)
- 这有可能对网站进行按键模拟吗
- 如何保存iframe(scrollto)的x和y?有可能吗
- Asp.net按钮事件点击不做回发.有可能吗
- 有可能对对象中的所有键进行原子更新吗?类似于阵列拼接的东西
- 是否有可能将承诺的结果作为论据传递给 IIFE