javascript - NodeJS:无法从函数返回结果

标签 javascript node.js search youtube youtube-api

我正在尝试从此函数返回结果:

var YouTube = require('youtube-node');
var youTube = new YouTube();

youTube.setKey('XXXXXXXXXXXX');

var result = youTube.search('World War z Trailer', 2, 
    function(error, result) {
        if (error) {
            console.log(error);
        } else {
            return result
        }})

console.log(result)

但是后来我在控制台中只得到未定义的结果。

最佳答案

这里的最后一个函数是一个回调函数,它不会以您想要的方式返回值。阅读它在某处的工作方式,例如here
您的问题可以通过Promise以这种方式解决

var search = new Promise(
  (resolve, reject) => {
    youTube.search('World War z Trailer', 2, function(error, result) {
     if (error) { reject(error); }
     resolve(result);
    })
  }
);       
(async () => {
  var result = await search;
  console.log(result);
})()             

关于javascript - NodeJS:无法从函数返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62153639/

相关文章:

node.js - 从客户端创建套接字 IO channel

node.js - Mongoose:跨多个领域的独特性

node.js - Nodejs mp3 流式传输

javascript - 借助 <tr> 的 id 更改 <td> 内的内容

javascript - 如何使用另一个文本区域编辑文本区域值?

javascript - 基于 json 数据响应动态路由

ruby - 识别包含列表中每个字符的字符串

ruby-on-rails - 在 Ruby 中搜索数组的更好方法?

Rails 中的 MySQL 全文搜索?

javascript - 使用 _.differenceBy 从一个对象数组中删除另一个对象数组中的项目