我们如何在外部的节点 js 中使用函数调用中的内部变量

How can we use inner variable from function calling in node js at outside?

本文关键字:函数调用 变量 内部 节点 外部 我们 js      更新时间:2023-09-26
var limit = 0;
Settings.find({ settings: "settings" }, function (err, docs) {
    limit=docs[0].keywords;  //6
    console.log('Limit from Inner : ' + limit);
});
console.log('Limit from Out : ' + limit);

它会给我这样的输出:"限制从外 : 0内部限制 : 6"

我想先调用内部并输出如下:"限制从外 : 6内部限制 : 6"

Node.js 是异步的,console.log('Limit from Out : ' + limit);在调用 Settings.find() 的回调之前执行。

如果必须执行所描述的操作,则可以使用某些控制流库(如 https://github.com/caolan/async)并执行以下操作:

var limit = 0;
async.series([
    function(callback) {
        Settings.find({ settings: "settings" }, function (err, docs) {
            limit=docs[0].keywords;  //6
            console.log('Limit from Inner : ' + limit);
            callback(err);
        });
    }
], function(err) {
    console.log('Limit from Out : ' + limit);
});