gpt4 book ai didi

javascript - nodejs回调不明白回调结果是如何通过参数来的

转载 作者:行者123 更新时间:2023-12-02 16:01:41 24 4
gpt4 key购买 nike

看到并运行下面的代码,我想我理解了闭包...回调参数中的“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”。

  1. 当执行callback("arg is odd", arg)时,函数被调用:

    • err = "arg 为奇数"
    • num = arg
  2. 当执行callback(null, arg)时,函数被调用:

    • 错误=空
    • num = arg
<小时/>

这里要记住的重要一点是,在 javascript 中,函数可以作为参数传递给其他函数。进一步阅读 here .

关于javascript - nodejs回调不明白回调结果是如何通过参数来的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31149651/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com