html可以实现异步调用,javascript如何实现异步请求?

JS中通常实现浏览器和服务器的数据交互,那么异步操作是关键的一部分:通常情况下,浏览器想服务器发送请求,服务器相应请求返回数据,浏览器执行异步操作。

f01237d45467587f42e18ebe00da53fd.png

使用定时函数模拟异步请求数据:// 使用定时函数模拟异步请求:

// 方法一:使用回调函数

function doSomething(callback){

setTimeout(function(){

console.log('执行结束');

let result = 4;

callback(result);

},100);

}

function callback(result){

console.log('接收到结果为:'+result);

}

doSomething(callback);

doSomething((result)=>{console.log('接收到结果为:'+result)});

// 方法二:promise对象

function doSomething(){

return new Promise(function(resolve){

setTimeout(function(){

console.log('执行结束');

let result = 6;

resolve(result);

},100);

});

}

doSomething().then(result=>{

console.log('接收到结果为:'+result);

});

// 方法三:generator函数

function doSomething(){

setTimeout(function(){

let result = 6;

it.next(result);

},100);

}

function *gener(){

var result = yield doSomething();

console.log(result);

}

let it = gener();

it.next();

// 方法四:async(ES7)

function doSomething(){

return new Promise(resolve=>{

setTimeout(function(){

let result = 6;

resolve(result);

},100);

});

}

async function action(){

let result = await doSomething();

console.log(result);

}

action();

Promise的含义:

promise是异步编程的一种解决方法。

所谓promise,简单说是一个容器,里面保存着某个未来才会结束的事件(通常是一个异步操作)的结果,从语法上说,promise是一个对象,从它可以获取异步操作的消息,promise提供了统一的API,各种异步操作都可以用同样的方法进行处理。

Generator函数:

Generator函数是es6提供的一种异步编程的解决方案,语法行为与传统函数完全不一样。

Generator函数有多种理解角度,从语法上,首先可以把它理解成,Generator函数是一个状态机,封装了多个内部状态。

执行Generator函数会返回一个遍历器对象,也就是说,Generator函数除了是状态机还是一个遍历器对象生成函数。 返回遍历器对象,可以依次遍历Generator函数内部的每一个状态。

async:

async是HTML5的新属性,该属性规定一旦脚本可用,则会异步执行(一旦下载完毕就会立刻执行)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值