Как получить доступ к переменной во всех функциях и условиях в узле асинхронной функции js?

Я хотел бы использовать функцию preg_match, чтобы сделать это, поскольку то, что вы хотите, является довольно простым выражением.

$matches = array();
$result = preg_match("/^(.{1,199})[\s]/i", $text, $matches);

Выражение означает «соответствовать любой подстроке, начиная с начала длины 1-200, что заканчивается пробелом ». Результат получается в $ result, а совпадение - в $ match. Это позаботится о вашем первоначальном вопросе, который определенно заканчивается на любом пространстве. Если вы хотите, чтобы он заканчивался на символах новой строки, измените регулярное выражение на:

$result = preg_match("/^(.{1,199})[\n]/i", $text, $matches);
2
задан fiza khan 2 March 2019 в 05:45
поделиться

1 ответ

Вы можете объявить глобальные переменные , используя глобальный объект NodeJS. Но в вашем случае вы хотите, чтобы k было 1, а это 0. Поскольку NodeJS является асинхронным , вы должны console.log (k) внутри обратного вызова.

Когда вы запускаете эту программу, console.log (k) и console.log (error) выполняется до того, как функция check1 возвращает значение в обратный вызов. Это асинхронный процесс. так что вы получаете k как 0. Чтобы решить эту проблему, вы должны console.log внутри обратного вызова

var k = 0;
var error = "error";

const { teamname, event_name, inputcount, name, roll } = req.body;
function check1(teamname, event_name, callback) {
        Register.find({ teamname: teamname, eventname: event_name }, (err, docs) => {
            callback(docs.length)
        });
    }
    check1(teamname, event_name, function (e) {
       if (e != 0) {
            console.log("executed");
            k = 1
       }
       console.log(k) // prints 0 or 1
       console.log(error) // prints "error"
    });

https://stackabuse.com/using-global-variables-in- узел-JS /

0
ответ дан Bear Nithi 2 March 2019 в 05:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: