基础
jQuery
Promise
Generator
- ES6 中的 Generator
- Iterator 遍历器
- Generator 的具体应用
- Thunk 函数
- Generator 与异步操作
- koa 中使用 Generator
- Generator 的本质是什么?是否取代了 callback
Async/Await
总结
文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
Promise 加入 ES6 标准
从 jquery v1.5 发布经过若干时间之后,Promise 终于出现在了 ES6 的标准中,而当下 ES6 也正在被大规模使用。
本节内容概述
- 写一段传统的异步操作
- 用
Promise
进行封装
写一段传统的异步操作
还是拿之前讲 jquery deferred
对象时的那段 setTimeout
程序
var wait = function () {
var task = function () {
console.log('执行完成')
}
setTimeout(task, 2000)
}
wait()
之前我们使用 jquery 封装的,接下来将使用 ES6 的 Promise
进行封装,大家注意看有何不同。
用 Promise
进行封装
const wait = function () {
// 定义一个 promise 对象
const promise = new Promise((resolve, reject) => {
// 将之前的异步操作,包括到这个 new Promise 函数之内
const task = function () {
console.log('执行完成')
resolve() // callback 中去执行 resolve 或者 reject
}
setTimeout(task, 2000)
})
// 返回 promise 对象
return promise
}
注意看看程序中的注释,那都是重点部分。从整体看来,感觉这次比用 jquery 那次简单一些,逻辑上也更加清晰一些。
- 将之前的异步操作那几行程序,用
new Promise((resolve,reject) => {.....})
包装起来,最后return
即可 - 异步操作的内部,在
callback
中执行resolve()
(表明成功了,失败的话执行reject
)
接着上面的程序继续往下写。 wait()
返回的肯定是一个 promise
对象,而 promise
对象有 then
属性。
const w = wait()
w.then(() => {
console.log('ok 1')
}, () => {
console.log('err 1')
}).then(() => {
console.log('ok 2')
}, () => {
console.log('err 2')
})
then
还是和之前一样,接收两个参数(函数),第一个在成功时(触发 resolve
)执行,第二个在失败时(触发 reject
) 时执行。而且, then
还可以进行链式操作。
以上就是 ES6 的 Promise
的基本使用演示。看完你可能会觉得,这跟之前讲述 jquery 的不差不多吗 ———— 对了,这就是我要在之前先讲 jquery 的原因,让你感觉一篇一篇看起来如丝般顺滑!
接下来,将详细说一下 ES6 Promise
的一些比较常见的用法,敬请期待吧!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论