最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

bcrypt.compare()是异步的,是否一定意味着一定会发生延迟? [复制]

运维笔记admin17浏览0评论

bcrypt.compare()是异步的,是否一定意味着一定会发生延迟? [复制]

bcrypt.compare()是异步的,是否一定意味着一定会发生延迟? [复制]

此问题已经在这里有了答案:

  • Why is my variable unaltered after I modify it inside of a function? - Asynchronous code reference6个答案
回答如下:

异步方法将与您的主程序并行执行,因此您的console.log将在bcryptpare中的回调函数之前完成。您将始终看到“糟糕,这是错误的”。

您可以等待主要功能的实际结果,然后在控制台中显示某些内容。

为了使比较“可以等待”,您可以将其包装到Promise中:

async function compareAsync(param1, param2) {
    return new Promise(function(resolve, reject) {
        bcryptpare(param1, param2, function(err, res) {
            if (err) reject(err);
            resolve(res);
        });
    });
}

const res = await compareAsync(param1, param2);
console.log(res);
发布评论

评论列表(0)

  1. 暂无评论