首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >javascript函数回调,参数(错误、响应、正文)顺序重要吗?

javascript函数回调,参数(错误、响应、正文)顺序重要吗?
EN

Stack Overflow用户
提问于 2018-10-11 06:41:53
回答 1查看 694关注 0票数 0

在javascript中,一个用于对异步函数执行回调或返回承诺.我只是想知道,在回调或承诺中的参数是如何工作的,我的意思是人们经常看到这样的事情:

代码语言:javascript
运行
复制
function (error, response, body)  {..}

这里是否定义了回调参数的顺序?或者说: javascript不知何故“知道”什么是"error“参数以及其他什么?javascript中是否有保留的关键字,例如"error \ err _ e“等?

我在这里见过这样的代码:

代码语言:javascript
运行
复制
const bcrypt = require('bcrypt');
const password = 'Top Secret'; 

bcrypt.hash(password, 10, (err, hash) => {
  if (err) {
    throw err;
  }
  console.log('Your hash: ', hash);
});

在“错误”是第一个参数的情况下,数据是第二个,但随后:

代码语言:javascript
运行
复制
bcrypt.hash(password, 10).then(
  hash => {
    console.log('Your hash: ', hash);
  },
  err => {
    console.log(err);
  }
);

哪里的哈希显然是承诺中的第一个参数,而err是第二个参数,那么我的问题是: javascript通常如何知道错误和其他参数是什么?有关于这方面的文件或指南吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-11 07:20:15

这里是否定义了回调参数的顺序?

是的:它是在request函数的文档中给出的,因为这就是它所谓的回调。

或者说: javascript不知何故“知道”什么是"error“参数以及其他什么?javascript中是否有保留的关键字,例如"error \ err _ e“等?

不是的。该语言没有赋予任何参数名称特殊的含义。

"err“是第一个参数,数据是第二个参数。

这只是一个(非常常见的)约定,记录在Why does node prefer error-first callback?https://docs.nodejitsu.com/articles/errors/what-are-the-error-conventions/http://nodeguide.com/style.html#callbacks上。

显然,散列是承诺中的第一个参数,而err是第二个参数。

不,这只是接受两个回调的 method,一个用于成功,一个用于错误情况。参数的名称(或是否存在任何参数)是无关的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52753819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档