繁体   English   中英

Node js变量在外部函数中不起作用

[英]Node js variable is not working in outside function

谁能告诉我如何在 axios 之外使用var dataTitle dataTitle ?

express = require('express') / 
const bodyParser = require('body-parser')
const axios = require('axios');
var randomInt = require('random-int');
const URL = 'url';
var randomNumber = randomInt(11)
axios.get(URL + randomNumber)
.then(function (response) {
var dataTitle = response.data.question;
console.log(dataTitle)
})
.catch(function (error) {
console.log(error);
});

看来您的问题是关于 JavaScript 中的变量范围。 您不能使用在函数内部声明的函数外部的变量。 因此,您必须在 axios 之前声明它并在 axios 中使用它,如下所示:

express = require('express');
const bodyParser = require('body-parser');
const axios = require('axios');
var randomInt = require('random-int');
const URL = 'url';
var randomNumber = randomInt(11);

var dataTitle;

axios.get(URL + randomNumber)
.then(function (response) {
     dataTitle = response.data.question;
     console.log(dataTitle)
})
.catch(function (error) {
     console.log(error);
});

除了Pouya Jabbarisani 的回答之外,由于axios.get返回一个承诺并且具有异步行为,因此函数之外的console.log(dataTitle)仍然会导致undefined

为了获得真正的价值,请使用await axios.get(...)
此外,您需要使包装函数async

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM