1. k2前端
var k1 = new Promise((resolve, reject) => { resolve('ok'); }) console.log(k1); async function k2() { } console.log(k2);
console:jquery
2. ios
var k1 = new Promise((resolve, reject) => { resolve('ok'); }) console.log(k1); async function k2() { } console.log(typeof k2);
console:ajax
3. k2()axios
var k1 = new Promise((resolve, reject) => { resolve('ok'); }) console.log(k1); async function k2() { } console.log(k2());
console:promise
以上:k2和k2()执行后的结果不同,前者是一个function对象,后者k2()是k2函数执行并返回的值,这个值的类型是promiseasync
4.函数
var k1 = new Promise((resolve, reject) => { resolve('ok'); }) console.log(k1); //k2和k2()执行后的结果不同,前者是一个function对象,后者k2()是k2函数执行并返回的值,这个值的类型是promise async function k2() { return 'ok2'; } console.log(k2());
console:fetch
5. ui
var k1 = new Promise((resolve, reject) => { resolve('ok');//目的,是否是找人接手 }).then(result => { console.log('收到promise传过来的值:' + result); }); console.log(k1); //k2和k2()执行后的结果不同,前者是一个function对象,后者k2()是k2函数执行并返回的值,这个值的类型是promise async function k2() { return 'ok2'; } k2().then(null); console.log(k2());
console:
6.
var k1 = new Promise((resolve, reject) => { resolve('ok');//目的,是否是找人接手 }).then(result => { console.log('收到promise传过来的值:' + result); }); console.log(k1); //k2和k2()执行后的结果不同,前者是一个function对象 //而k2()是执行k2这个函数,并返回一个值,这个值的类型是promise async function k2() { return 'ok2'; } k2().then(result => { console.log('收到promise传过来的值:' + result); }); console.log(k2());
console:
7.
//async 没有then, return promise类型(或者一个带then的类型{}/class) async function k3() { return new Promise((resolve, reject) => { setInterval(() => { resolve('k3 is ok'); }, 4000); }) } k3().then(result => { console.log(result); }, error => { error }) console.log(k3());
console:
4秒后
8. 以上aysnc函数进一步简化,对好比下
async function k4() { let tt = await '123b'; //await其实就是then console.log(tt); } k4();
console:
9. 和10一块儿对比观察
new Promise((resolve, reject) => { resolve('123a'); }).then(tt => { console.log(tt); return '456a' }).then(pp => { console.log(pp); })
console:
10.
async function k4() { let tt = await '123b'; //await其实就是then console.log(tt); let pp = await '456b'; console.log(pp); } k4();
console:
11. 对好比下:
12.
new Promise((resolve, reject) => { resolve('123a'); }).then(tt => { console.log(tt); return '456a' }).then(pp => { console.log(pp); return new Promise((resolve, reject) => { resolve('444444') }) }).then(oo => { console.log(oo); })
console:
13.
async function k4() { let tt = await '123b'; //await其实就是then console.log(tt); let pp = await '456b'; console.log(pp); let oo = await new Promise((resolve, reject) => { resolve('444444b'); }) console.log(oo); } k4();
console:
14. 上面的放下面代码图片,对比看下
15.
new Promise((resolve, reject) => { resolve('123a'); }).then(tt => { console.log(tt); return '456a' }).then(pp => { console.log(pp); return new Promise((resolve, reject) => { setTimeout(() => { resolve('444444'); }, 3000); }) }).then(oo => { console.log(oo); }) async function k4() { let tt = await '123b'; //await其实就是then console.log(tt); let pp = await '456b'; console.log(pp); let oo = await new Promise((resolve, reject) => { setTimeout(() => { resolve('444444b'); }, 2000); }) console.log(oo);
console: