作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
看到并运行下面的代码,我想我理解了闭包...回调参数中的“avatarUrl”是如何在“avatar”中接收的,“avatar”也是函数参数。我知道这是常见模式,只是还无法理解
var GitHubApi = require('github');
var github = new GitHubApi({
version: '3.0.0'
});
var getUserAvataWithCallback = function(user, callback) {
github.search.users({q: user}, function(err,res) {
if (err) { callback(err, null);}
else {
var avatarUrl = res.items[0].avatar_url;
callback(null, avatarUrl);
}
});
};
getUserAvataWithCallback('irom77', function(err,avatar) {
console.log('got url with callback pattern', avatar);
})
最佳答案
因此,回调是 javascript 中一个基本且不可或缺的概念,因此了解一些概念非常重要。看这个例子:
// This is the function definition for "foo"
//here the callback argument refers to
//the second argument in the function call at
//the bottom which is a function
var foo = function(arg, callback) {
if(arg%2 != 0)
callback("arg is odd", arg)
else
callback(null, arg)
}
//Function call to foo
foo(2, function(err, num) {
if(err)
console.log(err)
else
console.log(num)
}
因此,在上面的示例中,您可以将函数调用视为具有两个参数的调用:整数 2 和函数。
在函数定义中:
整数称为“arg”,函数称为“callback”。
当执行callback("arg is odd", arg)时,函数被调用:
当执行callback(null, arg)时,函数被调用:
这里要记住的重要一点是,在 javascript 中,函数可以作为参数传递给其他函数。进一步阅读 here .
关于javascript - nodejs回调不明白回调结果是如何通过参数来的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31149651/
我是一名优秀的程序员,十分优秀!