在javascript中,一个用于对异步函数执行回调或返回承诺.我只是想知道,在回调或承诺中的参数是如何工作的,我的意思是人们经常看到这样的事情:
function (error, response, body) {..}
这里是否定义了回调参数的顺序?或者说: javascript不知何故“知道”什么是"error“参数以及其他什么?javascript中是否有保留的关键字,例如"error \ err _ e“等?
我在这里见过这样的代码:
const bcrypt = require('bcrypt');
const password = 'Top Secret';
bcrypt.hash(password, 10, (err, hash) => {
if (err) {
throw err;
}
console.log('Your hash: ', hash);
});
在“错误”是第一个参数的情况下,数据是第二个,但随后:
bcrypt.hash(password, 10).then(
hash => {
console.log('Your hash: ', hash);
},
err => {
console.log(err);
}
);
哪里的哈希显然是承诺中的第一个参数,而err是第二个参数,那么我的问题是: javascript通常如何知道错误和其他参数是什么?有关于这方面的文件或指南吗?
发布于 2018-10-10 23: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,一个用于成功,一个用于错误情况。参数的名称(或是否存在任何参数)是无关的。
https://stackoverflow.com/questions/52753819
复制