【发布时间】:2019-05-25 11:32:38
【问题描述】:
我正在向服务器运行 ajax POST 以接收 JSON 数据作为承诺,我正在寻找一种方法来解包承诺并获取 [[PromiseValue]] 本身(实际数据)而无需使用每次嵌套一个 .then() 。从概念上讲,我可以解压一次数据(也许当我返回新的 Promise 时),以便我可以使用 async await,然后在(希望)解决后开始操作数据?这是我的最小可重现示例:
var data = getData();
useData(data);
async function getData() {
return new Promise((resolve, reject) => {
resolve({one: 1, two: 2, three: 3});
return;
});
};
//This is what I would like to have
async function useData(data) {
await data;
console.log(data); //which I'd like to return the value within [[PromiseValue]]
};
//This is my working version
async function unpackData(data) {
await data.then((res)=> {
console.log(res);
});
};
目前我运行 unpackData() 而不是 useData() 因为 useData() 记录的是 Promise 本身而不是数据,但我喜欢一种方法,它可以让我在等待数据之后使用 PromiseValue;行。
【问题讨论】:
标签: javascript node.js asynchronous promise async-await