当前位置: 首页 > 面试题库 >

我们如何在Node.js中将字符串从回调函数返回到根函数?

糜昌胤
2023-03-14
问题内容
function add(post)
{
    var word = new KeyWord({ keyword: post.keyword});    
    word.save(function (err, word) 
    {
        if(err)
        {
            if(err.code==11000)
                return post.keyword + ' is already added.';
        }
        else
            return 'Added : ' + post.keyword;
    });
}

当我尝试读取add函数的返回值时,它什么也不返回。
而且,当我尝试将消息放入变量并从外部返回时,也给出空值。


问题答案:

简单地说, 您不能 。要从此类函数获取值,必须使用回调:

function add(post, callback) {
  var word = new KeyWord({keyword: post.keyword});    
  word.save(function(err, word) {
    if (err) {
      if (err.code==11000) callback(post.keyword + ' is already added.');
      else callback('Added : ' + post.keyword);
    }
  });
}

然后,您将使用如下功能:

add(post, function(result) {
  // return value is here
}


 类似资料:
  • 问题内容: 我在从Node.js中的回调函数返回值时遇到了小麻烦,我将尝试尽可能轻松地解释我的情况。考虑一下我有一个片段,它包含URL,并命中该URL,并提供输出: 我试图将其包装在函数中并返回如下值: 因为在我的Node.js代码中,我有很多语句将决定value的值,例如: 关键是a内的所有语句将保持相同,除了的值。因此,绝对需要将这些通用代码放入函数中。我尝试了同样的方法,但是in总是会回报我

  • 问题内容: 如何从WebAssembly函数返回JavaScript字符串? 下列模块可以用C(++)编写吗? 另外:我可以将其传递给JS引擎进行垃圾回收吗? 问题答案: WebAssembly本身不支持字符串类型,它,而支撑件///值类型以及/用于存储。 这取决于您要执行的操作,但似乎直接访问缓冲区是最简单的: 如果您的模块具有功能,那么它将在实例化时执行。否则,您可能会调用一个导出,例如。 完

  • 问题内容: 如何从exec函数之外找到用户名? 问题答案: 您可以将exec函数传递给回调函数。当exec函数确定用户名时,您将使用用户名调用回调。 由于JavaScript的异步特性,您无法执行以下操作: 这是因为该行不会等到上面的函数完成。 回调说明:

  • 主要内容:阻塞代码实例,非阻塞代码实例Node.js 异步编程的直接体现就是回调。 异步编程依托于回调来实现,但不能说使用了回调后程序就异步化了。 回调函数在完成任务后就会被调用,Node 使用了大量的回调函数,Node 所有 API 都支持回调函数。 例如,我们可以一边读取文件,一边执行其他命令,在文件读取完成后,我们将文件内容作为回调函数的参数返回。这样在执行代码时就没有阻塞或等待文件 I/O 操作。这就大大提高了 Node.js

  • Node.js 异步编程的直接体现就是回调。 异步编程依托于回调来实现,但不能说使用了回调后程序就异步化了。 回调函数在完成任务后就会被调用,Node 使用了大量的回调函数,Node 所有 API 都支持回调函数。 例如,我们可以一边读取文件,一边执行其他命令,在文件读取完成后,我们将文件内容作为回调函数的参数返回。这样在执行代码时就没有阻塞或等待文件 I/O 操作。这就大大提高了 Node.js

  • 问题内容: 我如何使这个小功能“ imageExists”返回ajax请求是否成功? 问题答案: 我相信您将必须使用同步模式并使用单独的变量来存储返回值。