即使 PromiseResult 上已完成和目标数据的状态,承诺也不会解决
Promise not resolving even with status of fulfilled and target data on PromiseResult
我在遇到的这个问题上需要帮助(我已经广泛搜索了 Stack overflow,但无法自行解决)。
我有以下“虚拟”逻辑来测试 async/await 行为:
const data = [1, 2, 3]
async function newData() {
return data
}
async function getData() {
const fetchedData = await newData();
return fetchedData
}
console.log(
(async () => await getData())()
)
尽管我已经等待所有 Promise 实现,但以下数据是 return 从控制台日志中编辑的:
Console.log return
我做错了什么?为什么 Promise return 不是值,但即使它是 'fulfilled' 仍保持未决状态?
提前致谢。
所有 async
功能 return 承诺。这就是为什么 newData()
、getData()
和你的 async
IIFE 你埋在 console.log()
ALL return 一个承诺中。当您 return 来自 async
函数的值时,该 returned 值将成为 async
函数 returns 的承诺的解析值。 async
函数从不直接 return 值。
所以,即使这样:
(async () => await getData())()
是一个 async
函数,return 是一个承诺。
要从 async
函数中获取解析值,您必须使用 .then()
或 await
:
// this must be inside an async function or
// in an environment where top level await is allowed
console.log(await getData());
或:
getData().then(result => {
console.log(result);
});
我在遇到的这个问题上需要帮助(我已经广泛搜索了 Stack overflow,但无法自行解决)。
我有以下“虚拟”逻辑来测试 async/await 行为:
const data = [1, 2, 3]
async function newData() {
return data
}
async function getData() {
const fetchedData = await newData();
return fetchedData
}
console.log(
(async () => await getData())()
)
尽管我已经等待所有 Promise 实现,但以下数据是 return 从控制台日志中编辑的:
Console.log return
我做错了什么?为什么 Promise return 不是值,但即使它是 'fulfilled' 仍保持未决状态?
提前致谢。
所有 async
功能 return 承诺。这就是为什么 newData()
、getData()
和你的 async
IIFE 你埋在 console.log()
ALL return 一个承诺中。当您 return 来自 async
函数的值时,该 returned 值将成为 async
函数 returns 的承诺的解析值。 async
函数从不直接 return 值。
所以,即使这样:
(async () => await getData())()
是一个 async
函数,return 是一个承诺。
要从 async
函数中获取解析值,您必须使用 .then()
或 await
:
// this must be inside an async function or
// in an environment where top level await is allowed
console.log(await getData());
或:
getData().then(result => {
console.log(result);
});