传统异步
- 回调函数
- 响应事件
- 发布/订阅
- Promise
Generator 异步案例
适用场景,执行a任务,暂停a任务,执行b任务,执行完毕之后继续执行a任务
function fetchData(url) {
let data = yield fetch(url)
// 对数据进行操作
console.log(data)
}
let f = fetchData("http://www.nini.com")
let resultIterator = f.next()
resultIterator.value.then(function (response) {
return response.json()
}).then(function (data) {
f.next(data)
})
知识点补充
- fetch 将返回一个promise对象
- 只要网络不出错,就会成功
-
response
会作为响应成功的参数,和data
是不同的 - 使用
response.json()
取出body
中的数据,body的类型多种多样,所以取数据也有很多的方式