带 async 的函数(async function fn(){}),会返回 Promise 函数javascript
await 至关于 promise 构造函数中的 resolve 参数java
async function fn(){
code1...;
const value=await fn2();
code2...;
}
复制代码
类等于es6
new Promise(resolve=>{
code1...;
resolve(fn2());
}).then(value=>{
code2...;
})
复制代码
function syncFun() {
console.log('syncFun start')
return 'value'
}
async function asyncFun() {
console.log('async start')
const value = syncFun()
console.log('value=' + value)
console.log('async end')
}
asyncFun()
console.log('main end')
复制代码
function syncFun() {
console.log('syncFun start')
return 'value'
}
new Promise(resolve => {
console.log('promise start')
const value = syncFun()
console.log('value=' + value)
console.log('promise end')
})
console.log('main end')
复制代码
function syncFun() {
console.log('syncFun start')
return 'value'
}
async function asyncFun() {
console.log('async start')
const value = await syncFun()
console.log('value=' + value)
console.log('async end')
}
asyncFun()
console.log('main end')
复制代码
function syncFun() {
console.log('syncFun start')
return 'value'
}
new Promise(resolve => {
console.log('promise start')
resolve(syncFun())
}).then(value => {
console.log('value=' + value)
console.log('promise end')
})
console.log('main end')
复制代码
async function syncFun() {
console.log('syncFun start')
return 'value'
}
async function asyncFun() {
console.log('async start')
const value = await syncFun()
console.log('value=' + value)
console.log('async end')
}
asyncFun()
console.log('main end')
复制代码
async function syncFun() {
console.log('syncFun start')
return 'value'
}
new Promise(resolve => {
console.log('promise start')
resolve(syncFun())
}).then(value => {
console.log('value=' + value)
console.log('promise end')
})
console.log('main end')
复制代码
没看过 async/await 的源码,只是根据使用的时候的直觉而写,若有不妥之处,欢迎指正(欢迎加微信 772345373)segmentfault