关于promise

2022-02-22  本文已影响0人  米卡卡米

本文章完全参考 阮一峰老师的es6-promise。如果有啥问题可以直接去看原文!

什么是promise,简单地来说,就是一个容器,保存着未来才会结束的事情(异步操作)

promise是个对象。
特点:1.对象状态不受外界影响。只有异步操作的结果,可以决定当前是什么状态,其他都无法改变。
有三种状态:pengding (进行中)fulfilled(已成功) rejected(已失败)
2.一旦状态改变,就不会再改变。任何时候都可以得到这个结果。
状态改变只有两种可能 => 1.pending > fulfilled(已成功)
2.pending > rejected(已失败)
状态一旦改变成功,则不会改变,一直保持这个结果,成为 resolved(已定型) 。即使添加回调函数,也是立即得到这个结果。
缺点:1.无法取消,一旦新建则立即执行,无法中途取消。2.如果不设置回调,则内部抛出的错误,不会反应到外部。3.如果处于pending状态,无法得知进展(刚开始还是即将完成?)


开始使用啦~
简单实用方法:

       let getData = function () {
                    return new Promise(function (resolve, reject) {
                        $.get(url.imgid, { id: ids }, function (d) {
                            $.get(url.img, { id: d.data.hdimg[0].id }, function (ds) {
                                resolve(ds);//=return d
                            })
                        })

                    })
                };

                getData().then(function (ds) {
                    console.log(ds);
                })
上一篇 下一篇

猜你喜欢

热点阅读