Javascript 将解析值指定给全局变量-承诺

Javascript 将解析值指定给全局变量-承诺,javascript,promise,es6-promise,Javascript,Promise,Es6 Promise,我决定使用承诺而不是回调 我解出一个包含价格的变量,然后调用。然后像这样处理它 SomeAsyncThing("fifa 17").then(function(value){ console.log("value " + value); }); 如何将该值分配给全局变量以在JS中的其他地方使用 我错过了什么明显的东西吗?我尝试过定义x=0;在顶部,然后将值分配给x并调用console.log退出此函数,但我得到的是0而不是分配的值 如何将该值分配给全局变量以在JS中的其他地方使用 你

我决定使用承诺而不是回调

我解出一个包含价格的变量,然后调用。然后像这样处理它

SomeAsyncThing("fifa 17").then(function(value){

    console.log("value " + value);
});
如何将该值分配给全局变量以在JS中的其他地方使用

我错过了什么明显的东西吗?我尝试过定义x=0;在顶部,然后将值分配给x并调用console.log退出此函数,但我得到的是0而不是分配的值

如何将该值分配给全局变量以在JS中的其他地方使用

你不能。或者至少你不应该。在使用全局变量之前,您需要等待承诺兑现,但是如果没有承诺,您将不知道。因此,将promise本身分配给全局变量,无论您想在何处使用该值,只需使用
.then()

1:你甚至可能成功地在全球范围内声明了
var x
,但正如你所意识到的那样

如何将该值分配给全局变量以在JS中的其他地方使用

你不能。或者至少你不应该。在使用全局变量之前,您需要等待承诺兑现,但是如果没有承诺,您将不知道。因此,将promise本身分配给全局变量,无论您想在何处使用该值,只需使用
.then()


1:您甚至可能通过全局声明
var x
成功地做到了这一点,但正如您所意识到的那样。

这与回调问题完全相同。如果需要,节点中有一个名为
global
的变量。(使用它可能是一种反模式。)这与回调问题完全相同。如果需要,节点中有一个名为
global
的变量。(使用它可能是一种反模式。)