在异步函数之外使用结果

问题描述 投票:0回答:1

很抱歉,如果我在这里问这个问题,但尝试了很多方法,但无法解决这个问题。

我正在使用这个Library,我运行了这个例子,一切都很好,但是当我 尝试在异步函数范围之外使用结果。像这样:

let x;

const payload = {"Traffic":99,"Growth":9,"Transactions":9,"Weight":33};

let promise = new Promise((resolve, reject) => {
    decisionTable.execute_decision_table("Volumetrics", 
    decision_table,payload,  (err, results)  => {  
        resolve(results);   
    });
});

 x = promise.then(
    result =>{return (result) } 
);

console.log (x);

总是得到这个:

Promise { <pending> }
而不是json对象

我想是我对 Promise 和异步函数的无知。任何帮助将非常感激。谢谢你。

asynchronous
1个回答
0
投票

您只能在传递给

then()
的函数中使用它,如下所示:

promise.then(
    result => console.log(result) 
);

如果你想做其他很酷的事情,你就必须在那里完成所有事情。

如果您不喜欢它的外观,请查看

async/await
语法,它在大多数情况下更具可读性,如下所示:

let x = await promise;

console.log (x);
© www.soinside.com 2019 - 2024. All rights reserved.