async 可以把普通的函数改成异步函数,调用都是一样的,返回的是一个promise对象
async配合await使用是一个阻塞的异步方法
async
* 返回一个promise对象, 无论函数内部是否有await都会返回promise对象
* 函数内部return返回的值, 会成为then回调函数的第一个参数
* 函数内部如果出现错误,会被then的第二个参数或catch所捕获
await
* 只能在async函数中出现, 普通函数直接使用会报错
* 正常情况下, await后面是一个Promise对象, 返回该对象的结果.
* 如果await后面不是Promise对象, 就直接返回对应的值
回调地狱
当一个函数作为参数传入另一个参数中,并且它不会立即执行,只有当满足一定条件后该函数才可以执行,这种函数就称为回调函数。我们熟悉的定时器和Ajax中就存在有回调函数
function hill(str) {
return new Promise((resolve, reject) => {
var flag = true
setTimeout(function() {
if (flag) {
resolve(str