无法使用chrome-cookies-secure模块解析Node.js App中的Promise

空洞

我正在使用需要访问Google Chrome浏览器cookie的本地Node.js应用程序。我发现chrome-cookies-secure似乎可以完成此工作库,但是我无法弄清楚下面的代码出了什么问题。

const chrome = require('chrome-cookies-secure');

const domains = [
    "google.com"
];

const resolveCookies = async () => {
    let result = [];
    for(domain of domains) {
        await chrome.getCookies(`https://${domain}/`,  (err, cookies) => { 
            result.push(cookies); 
            // console.log(cookies); //? This is going to correctly print the results
        })
    }
    return result;
}

const final = resolveCookies();
console.log(final); //! This is going to return a Promise { <pending> } object

我的想法是,我只想将所有域中的cookie存储在一个列表中,但是无论我无法解决Promise都是什么。我没有看到关于此模块的异步调用的任何示例,但是如果我不使用它,它将在脚本执行后返回一个空列表。

我的节点版本: v14.4.0

我究竟做错了什么?

琼斯·哈珀

它看起来像的实现getCookies正确地等待异步进程。您可以在实现看到,尽管getCookies它本身是async,但它在getDerivedKey不等待的情况下进行了调用(并且该函数始终不起作用async)。

建议不要使用依赖于此实现的方法,而是Util.promisify通过回调来创建适当的Promise:

const util = require('util');

const chrome = require('chrome-cookies-secure');

const getCookies = util.promisify(chrome.getCookies);

// ...

const cookies = await getCookies(`https://${domain}/`);

手动将如下所示:

const getCookies = (url) => new Promise((resolve, reject) => {
    chrome.getCookies(url, (err, cookies) => {
        if (err) {
            reject(err);
        } else {
            resolve(cookies);
        }
    });
});

有人已经尝试解决此问题,但是将近九个月没有将其合并。


请注意,一旦您具有要调用的工作功能,您还可以转换:

const resolveCookies = async () => {
    let result = [];
    for(domain of domains) {
        await chrome.getCookies(`https://${domain}/`,  (err, cookies) => { 
            result.push(cookies); 
            // console.log(cookies); //? This is going to correctly print the results
        })
    }
    return result;
}

简单地:

const resolveCookies = () => Promise.all(domains.map((domain) => getCookies(`https://${domain}/`)));

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

找不到模块:无法在React App中解析'/root/project/node_modules/eslint-loader/index.js

来自分类Dev

如何使用mailparser npm模块解析node.js中的电子邮件附件?

来自分类Dev

TypeScript无法解析外部模块(node.js)

来自分类Dev

TypeScript无法解析外部模块(node.js)

来自分类Dev

找不到模块:错误:无法解析/ node_modules / ng2-charts / fesm2015中的'chart.js'

来自分类Dev

在Node.js模块中解析JavaScript代码

来自分类Dev

无法在Node.js中解析JSON

来自分类Dev

无法从App.js解析(模块)-React Native

来自分类Dev

无法从App.js解析模块-React Native

来自分类Dev

在Flask和JS中设置Cookies

来自分类Dev

无法使用Node JS ipp模块打印

来自分类Dev

无法使用node.js http.request将记录插入ElasticSearch中-MapperParsingException [无法解析]

来自分类Dev

使用node-nan在node.js模块中的SetWindowsHookEx

来自分类Dev

使用Bluebird在Promise中包装Node.js回调

来自分类Dev

使用Promise处理Node.js + Express中的错误

来自分类Dev

在while(JavaScript / Node.js)中如何使用Promise?

来自分类Dev

使用Promise重写Node.js中的Redis调用

来自分类Dev

无法从“node_modules/expo/AppEntry.js”解析“../../App”

来自分类Dev

Node.js模块在不同设备中无法正常工作

来自分类Dev

无法从Express Node JS中的模块返回数据

来自分类Dev

无法使用Node.js中的请求模块传输大文件

来自分类Dev

无法访问angular.js $ cookies对象

来自分类Dev

无法访问angular.js $ cookies对象

来自分类Dev

Cookies在angularjs中无法正常工作

来自分类Dev

当需要Node.js中的模块时,是否必须使用“。”。

来自分类Dev

如何使用C ++插件中内置模块的node.js

来自分类Dev

无法将“ mysql2 / promise”导入Node.js上的ES模块(MJS)13/14

来自分类Dev

Node.js中的模块

来自分类Dev

如何在Js Cookies中存储长字符串?

Related 相关文章

  1. 1

    找不到模块:无法在React App中解析'/root/project/node_modules/eslint-loader/index.js

  2. 2

    如何使用mailparser npm模块解析node.js中的电子邮件附件?

  3. 3

    TypeScript无法解析外部模块(node.js)

  4. 4

    TypeScript无法解析外部模块(node.js)

  5. 5

    找不到模块:错误:无法解析/ node_modules / ng2-charts / fesm2015中的'chart.js'

  6. 6

    在Node.js模块中解析JavaScript代码

  7. 7

    无法在Node.js中解析JSON

  8. 8

    无法从App.js解析(模块)-React Native

  9. 9

    无法从App.js解析模块-React Native

  10. 10

    在Flask和JS中设置Cookies

  11. 11

    无法使用Node JS ipp模块打印

  12. 12

    无法使用node.js http.request将记录插入ElasticSearch中-MapperParsingException [无法解析]

  13. 13

    使用node-nan在node.js模块中的SetWindowsHookEx

  14. 14

    使用Bluebird在Promise中包装Node.js回调

  15. 15

    使用Promise处理Node.js + Express中的错误

  16. 16

    在while(JavaScript / Node.js)中如何使用Promise?

  17. 17

    使用Promise重写Node.js中的Redis调用

  18. 18

    无法从“node_modules/expo/AppEntry.js”解析“../../App”

  19. 19

    Node.js模块在不同设备中无法正常工作

  20. 20

    无法从Express Node JS中的模块返回数据

  21. 21

    无法使用Node.js中的请求模块传输大文件

  22. 22

    无法访问angular.js $ cookies对象

  23. 23

    无法访问angular.js $ cookies对象

  24. 24

    Cookies在angularjs中无法正常工作

  25. 25

    当需要Node.js中的模块时,是否必须使用“。”。

  26. 26

    如何使用C ++插件中内置模块的node.js

  27. 27

    无法将“ mysql2 / promise”导入Node.js上的ES模块(MJS)13/14

  28. 28

    Node.js中的模块

  29. 29

    如何在Js Cookies中存储长字符串?

热门标签

归档