async/await / 函数赋值 returns
async/await / assignments from function returns
目前有一个简单的功能:
async function getItem(id) {
const item = await ... doing a bunch of time consuming stuff
return item;
}
来自同步语言,仍然从表面理解async/awaits;我预计 return 已解决的问题如下:
const item = getItem('items-8');
console.log(item); // Just getting a promise
问题有点 'cosmetic',但由于 async/await 某种程度上解决了回调问题,我希望更进一步,甚至避免可能的事情。
是否可以通过 async/awaits 获得这样的单行变量赋值? syntax/code 结构是什么?
async..await
是 ES6 promises 的语法糖,它允许以类似同步的方式编写异步代码。使用promises的代码不能是同步的,因为promises是异步的。
为了以同步方式编写,使用 getItem
的代码也应该驻留在 async
函数中。如果它是顶层的并且不驻留在另一个函数中(如应用程序初始化代码),它可以驻留在 async
IIFE.
两者都可以
getItem('items-8').then(item => {
...
});
或
// inside `async` function
const item = await getItem('items-8');
...
目前有一个简单的功能:
async function getItem(id) {
const item = await ... doing a bunch of time consuming stuff
return item;
}
来自同步语言,仍然从表面理解async/awaits;我预计 return 已解决的问题如下:
const item = getItem('items-8');
console.log(item); // Just getting a promise
问题有点 'cosmetic',但由于 async/await 某种程度上解决了回调问题,我希望更进一步,甚至避免可能的事情。
是否可以通过 async/awaits 获得这样的单行变量赋值? syntax/code 结构是什么?
async..await
是 ES6 promises 的语法糖,它允许以类似同步的方式编写异步代码。使用promises的代码不能是同步的,因为promises是异步的。
为了以同步方式编写,使用 getItem
的代码也应该驻留在 async
函数中。如果它是顶层的并且不驻留在另一个函数中(如应用程序初始化代码),它可以驻留在 async
IIFE.
两者都可以
getItem('items-8').then(item => {
...
});
或
// inside `async` function
const item = await getItem('items-8');
...