如何在typescript中将局部变量传递给全局变量?

如何在typescript中将局部变量传递给全局变量?,typescript,variables,global,Typescript,Variables,Global,如何获取变量“price”的值并将其作为全局变量传递,以便在程序中的其他地方使用 gdax.loadMidMarketPrice(product).then((price: BigJS) => { console.log('Mid-market Price: $${price}/BTC'); }).catch(logError); 我尝试了这个方法,但是变量在函数外部不可见 gdax.loadMidMarketPrice(product).then((price: BigJS)

如何获取变量“price”的值并将其作为全局变量传递,以便在程序中的其他地方使用

gdax.loadMidMarketPrice(product).then((price: BigJS) => {
    console.log('Mid-market Price: $${price}/BTC');
}).catch(logError);
我尝试了这个方法,但是变量在函数外部不可见

gdax.loadMidMarketPrice(product).then((price: BigJS) => {
    var midprice=price;
    console.log('Mid-market Price: $${price}/BTC');
}).catch(logError);
var midprice;

gdax.loadMidMarketPrice(product).then((price: BigJS) => {
    midprice = price;
    console.log('Mid-market Price: $${price}/BTC');
    someOtherFunc();
}).catch(logError);

function someOtherFunc() {
    console.log("Hey, I can see it! It's " + midprice);
}

好吧,你说所有的东西都在同一个typescript文件中。然后简单地将变量移出函数

gdax.loadMidMarketPrice(product).then((price: BigJS) => {
    var midprice=price;
    console.log('Mid-market Price: $${price}/BTC');
}).catch(logError);
var midprice;

gdax.loadMidMarketPrice(product).then((price: BigJS) => {
    midprice = price;
    console.log('Mid-market Price: $${price}/BTC');
    someOtherFunc();
}).catch(logError);

function someOtherFunc() {
    console.log("Hey, I can see it! It's " + midprice);
}

在浏览器中:
window['midprice']=price。在Node.js中:
global['midprice']=price。然后您必须
在文件TS定义文件中的某处声明var midprice:any
。但这是一种非常糟糕的做法。这是如何使用的?你想让它可用吗?在什么环境下,什么其他技术。只是想让变量对同一个typescript文件中的其他函数可用。这也有点模糊,这些函数是如何调用的?您可以将
var midprice
移到then函数之外。但是该变量将被异步初始化,如果在回调完成之前使用,它可能为nullundefined@Jin那么你的代码有问题了。在我的示例中,
midprice
是在调用
someOtherFunc
之前设置的,因此变量必须存在。可能您尝试了其他代码,在设置之前正在访问
midprice
?也许你可以用一个虚拟函数来替换例子中未知的
gdax.loadMidMarketPrice
调用,这样我们就可以重现你的确切问题了?