utility.fetchInfo()返回一个Promise对象。我需要能够获取此Promise对象的值,并将其值分配给一个变量,以便以后在代码中使用。
目前,我可以愉快地将值打印result到控制台,但是我需要能够将此值分配给myVal。到目前为止,我已经尝试了很多方法,但没有任何效果。
var myVal = utility.fetchInfo().then(result => console.log(result));
谢谢
只需在回调体内进行赋值即可
utility.fetchInfo().then(result => { myVal = result; });
Run Code Online (Sandbox Code Playgroud)
取决于具体情况,例如,如果有一大块异步逻辑,最好将其提取到单独的函数中:
let myVal; // undefined until myAsyncFunc is called
const myAsyncFunc = (result) => {
console.log(result);
myVal = result;
// ...
};
utility.fetchInfo().then(myAsyncFunc); // async call of myAsyncFunc
Run Code Online (Sandbox Code Playgroud)
@dhilt所说的,但是在promise回调函数中做你的事情:
utility.fetchInfo().then(result => {
doSomethingWith(result);
});
Run Code Online (Sandbox Code Playgroud)
或者,如果您使用的是最新的Node或Babel,请使用async / await:
async myFunction () {
var myVal = await utility.fetchInfo();
}
Run Code Online (Sandbox Code Playgroud)