promise的实际应用

1.https://www.jianshu.com/p/c85953427e54

2.回调嵌套

   function deleteType(id){
        //删除商品分类之前需要查看这个分类下是否还有商品,有商品不能删除该分类
            $.ajax({
                type:'get',
                url:'/itemManagement/judgmentIfHaveItem/' + id,
            }).then( res => {
                console.log(res);
                if(res === 1){
                    //ajax
                    if(confirm("确认删除该商品分类?")){
                        $.ajax({
                            type:'DELETE',
                            url:'/itemManagement/deleteItemType/'+ id,
                            contentType:'application/json',
                            data:'JSON.stringify(id)',
                            dataType:'json',
                        }).then(res => {
                            window.location.reload();
                        }).catch(err => {
                            console.log(error);
                            alert("服务器错误,请稍后重试!");
                        });
                    }
                }else{
                    alert("该分类下存在商品,禁止删该分类!")
                }
            }).catch( err=> {
                alert("服务器错误,请稍后重试!");
            })
    }

3.改写成promise

function deleteType(id){
        //删除商品分类之前需要查看这个分类下是否还有商品,有商品不能删除该分类
            $.ajax({
                type:'get',
                url:'/itemManagement/judgmentIfHaveItem/' + id,
            }).then( res => {
                if (res === 1) {
                    if (confirm("确认删除该商品分类?")) {
                        return $.ajax({
                            type:'DELETE',
                            url:'/itemManagement/deleteItemType/'+ id,
                            contentType:'application/json',
                            data:'JSON.stringify(id)',
                            dataType:'json',
                        })
                    }
                } else {
                    return Promise.reject("该分类下存在商品,禁止删该分类!")
                }
            }).then(res => {
                if (res) {
                    window.location.reload();
                }
            }).catch(err => {
                console.log(err);
                if (typeof err === 'string') {
                    alert(err)
                } else {
                    alert("服务器错误,请稍后重试!");
                }
            })
    }

你可能感兴趣的:(promise的实际应用)