给定一个用于处理Promise值的命名函数
function handlePromise(data) {
  // do stuff with `data`
  return data
}

a)传递命名函数handlePromise作为.then()的引用

promise.then(handlePromise)

b)使用匿名或命名函数作为.then()的参数,并将命名函数handlePromise返回给Promise值作为传递给.then()的匿名或命名函数的主体中的参数.

promise.then(function /*[functionName]*/(data) {return handlePromise(data)})

问题

>模式a)和b)之间是否有差异?
>如果1.的答案是肯定的,应该有什么区别
考虑使用任何一种模式?

解决方法

有可能创建一个没有参数传递时有差异的情况,但它是一个伸展,通常你应该传递f而不是函数(x){return f(x); }或x => f(x)因为它更干净.

这是一个导致差异的例子,理由是参与的功能可能会导致这些参数的副作用:

function f() {
   if(arguments.length === 0) console.log("win");
   else console.log("Hello World");
}
const delay = ms => new Promise(r => setTimeout(r,ms)); // just a delay
delay(500).then(f); // logs "Hello World";
delay(500).then(() => f()) // logs "win"

javascript – .then(functionReference)和.then(function(value){return functionReference(value)}之间有区别吗?的更多相关文章

  1. Swift Function函数

    "函数名参数名参数类型返回值类型funcsayHello->String4.多个参数funcsayHello->String{ifalreadyGreeted{returnsayHelloAgain}else{returnsayHello}}print//prints"Helloagain,Tim!"上面的在函数的调用过程中,参数里面可以带参数名称的:alreadyGreeted:true多参数之间使用”,”分开.5.多值返回funcminMax->{varcurrentMin=array[0]varcu

  2. javascript Function函数理解与实战

    小编给大家带来一片关于javascript的基础教学内容,关于Function函数的训练与理解,一起学习下吧。

  3. javascript – 构造函数的差异:var X = function(){},var X = function X(){},function X(){}

    参见英文答案>varfunctionName=function(){}vsfunctionfunctionName(){}34个我现在调试其他代码,当他在这两种模式中定义构造函数时我感到很困惑.两者之间有什么特别之处吗?还有,就像这样创建一个函数的效果.我只是看每个用例.解决方法不同的选择:1)函数未命名,因此您在MyObject.toString()中没有获得函数名称2)函数已命名,因此您在My

  4. javascript – 将此范围绑定到ES6 => function operator

    在尝试使用=>继承上下文之后ES6给我们的功能我注意到这个上下文永远不会改变.例:没有=>运算符并使用function关键字:因此,如果我们从外部调用接收函数或者只是在变量中有函数,我们怎样才能确定我们是否能够将不同的函数绑定到它或者它是否只是从某个地方继承它?

  5. ‘Firebase init’命令没有创建package.json,index.js和function文件夹

    我现在正在尝试为我的GoogleHome创建一个教程应用程序但我遇到了一些麻烦.根据thistutorial,我完成了遵循构建实现的步骤.但是在第7步之后,当前文件夹中只有’firebase.json’,所以我看不到函数文件夹,package.json和index.js.我的控制台日志如下.如果有人帮助我,我真的很高兴.提前致谢.解决方法您必须使用箭头键和空格键选择要初始化的功能–默认情况下不启用任何功能.请参阅粘贴日志中的错误消息:您还可以运行firebaseinit函数来专门初始化函数.

  6. c – 将具有所有参数的成员函数传递给std :: function

    如何从成员函数创建一个std::函数,而不需要键入std::placeholder::_1,std::placeholder::_2等–我想“保留”所有参数,只保存对象本身.我不想在这个阶段提供参数,我只想把功能对象存储在某个地方.例如,我想要使用具有全局函数和成员函数的std::vector.这很容易做到FastDelegate(fastdelegate::MakeDelegate(object

  7. javascript – .then(functionReference)和.then(function(value){return functionReference(value)}之间有区别吗?

    给定一个用于处理Promise值的命名函数a)传递命名函数handlePromise作为.then()的引用b)使用匿名或命名函数作为.then()的参数,并将命名函数handlePromise返回给Promise值作为传递给.then()的匿名或命名函数的主体中的参数.问题>模式a)和b)之间是否有差异?>如果1.的答案是肯定的,应该有什么区别考虑使用任何一种模式?

  8. javascript – Function和Function.prototype之间的区别

    为什么不将其属性移动到Function并让Function.prototype未定义?除了Function.prototype之外,您还会将原型自动分配给其他函数?不是因为那是调用的地方,或者因为那是常规函数“继承”调用的地方,而是因为,正如我之前提到的,函数本身就是一个函数,因此具有原型Function.prototype,可以找到调用在其原型链上.What’sthepointofFunction.prototypethen?

随机推荐

  1. js中‘!.’是什么意思

  2. Vue如何指定不编译的文件夹和favicon.ico

    这篇文章主要介绍了Vue如何指定不编译的文件夹和favicon.ico,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  3. 基于JavaScript编写一个图片转PDF转换器

    本文为大家介绍了一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件,感兴趣的可以动手尝试一下

  4. jquery点赞功能实现代码 点个赞吧!

    点赞功能很多地方都会出现,如何实现爱心点赞功能,这篇文章主要为大家详细介绍了jquery点赞功能实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  5. AngularJs上传前预览图片的实例代码

    使用AngularJs进行开发,在项目中,经常会遇到上传图片后,需在一旁预览图片内容,怎么实现这样的功能呢?今天小编给大家分享AugularJs上传前预览图片的实现代码,需要的朋友参考下吧

  6. JavaScript面向对象编程入门教程

    这篇文章主要介绍了JavaScript面向对象编程的相关概念,例如类、对象、属性、方法等面向对象的术语,并以实例讲解各种术语的使用,非常好的一篇面向对象入门教程,其它语言也可以参考哦

  7. jQuery中的通配符选择器使用总结

    通配符在控制input标签时相当好用,这里简单进行了jQuery中的通配符选择器使用总结,需要的朋友可以参考下

  8. javascript 动态调整图片尺寸实现代码

    在自己的网站上更新文章时一个比较常见的问题是:文章插图太宽,使整个网页都变形了。如果对每个插图都先进行缩放再插入的话,太麻烦了。

  9. jquery ajaxfileupload异步上传插件

    这篇文章主要为大家详细介绍了jquery ajaxfileupload异步上传插件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. React学习之受控组件与数据共享实例分析

    这篇文章主要介绍了React学习之受控组件与数据共享,结合实例形式分析了React受控组件与组件间数据共享相关原理与使用技巧,需要的朋友可以参考下

返回
顶部