周大胖子 发表于 2018-4-24 23:57:32

KOA 异步处理

本帖最后由 周大胖子 于 2018-4-24 23:59 编辑

async : 让方法变成异步;await : 等待异步方法执行完成; (await只有在async的方法中才可以使用, 因为await 访问本身就会造成程序停止堵塞,所以只能在异步方法中使用。)
function getData(){
return 'zhangsan}
async function testAsync(){
return 'Hello async}
async function test(){
const v1=await getData();
const v2=await testAsync();
console.log(v1,v2);
}
test();async/await 同时使用
async 会将其后的函数(函数表达式或Lambda)的返回值封装成一个Promise 对象,而
await 会等待这个Promise 完成,并将其resolve 的结果返回出来。

function findData() {
return new Promise(resolve => {
setTimeout(() => resolve("long_time_value"), 1000);
});
}
async function test() {
const v = await findData();
console.log(v);
}
test();

周大胖子 发表于 2018-4-25 00:10:49

promise: 处理异步;写法一 //使用方法:
//resolve执行成功的回调函数
//reject 执行错误的回调函数
var p=new Promise(function(resolve,reject){
   setTimeout(()=>{
      var name = 'zhangsan      resolve(name)
   },1000)
}

p.then((data)=>{
   console.log(data)   //后台打印出张三
}

周大胖子 发表于 2018-4-25 00:15:23

Promise 处理异步函数 写法2function getData(resolve,reject){
   //ajax
   setTimeout(function(){
      var name='张三'
      resolve(name);
   }1000,)
}

var p= new Promist(getData)   // 注意这里放的是方法名称 且没有括号()

p.then((data)=>{
   console.log(data);
}

周大胖子 发表于 2018-4-25 15:35:43

promise是啥

Promise 对象 用于异步计算。 一个 Promise 对象 代表一个还未完成,但预期将会完成的操作。
页: [1]
查看完整版本: KOA 异步处理