目前有一个简单的函数:
async function getItem(id) {
const item = await ... doing a bunch of time consuming stuff
return item;
}来自同步语言,仍然从表面上理解异步/等待;我原本希望下面的代码返回已解决的项:
const item = getItem('items-8');
console.log(item); // Just getting a promise这个问题有点“表面化”,但作为async/await解决回调的一种方式,我希望能走得更远,甚至避免这种情况。
有没有可能用async/awaits获得这样的单行变量赋值?语法/代码结构是什么?
发布于 2018-01-02 19:36:23
async..await是ES6承诺的语法糖,它允许以类似同步的方式编写异步代码。使用promises的代码不能是同步的,因为promises是异步的。
为了以同步方式编写,使用getItem的代码也应该驻留在async函数中。如果它是顶级的,并且没有驻留在另一个函数中(比如应用程序初始化代码),那么它可以驻留在async IIFE中。
要么就是
getItem('items-8').then(item => {
...
});或
// inside `async` function
const item = await getItem('items-8');
...https://stackoverflow.com/questions/48059799
复制相似问题