如何从Promise

时间:2017-11-14 06:02:11

标签: javascript es6-promise

我有axios从CustomerService.js中的服务器获取数据

UpdateCustomer(customer){
        let vm = this;
        return new Promise((resolve, reject) => {
            Axios.post("/members/update", customer)
            .then(function (response) {
                if (!response.success){
                    reject(response.message);
                }else{
                    resolve(vm.CommonService.parseJson(response.data));
                }
            })
            .catch(function (error) {
                 reject(error);
            });
        });
    }

在我的vue组件文件中,我正在接收这个rsponse,但问题是我得到了响应然后捕获并且它抛出错误。

vm.CustomerService.UpdateCustomer({customer})
            .then(function (data) {           
                vm.app.Success("Success");
                vm.postCustomerTask(data);
            })
            .catch(function (error) {               
                vm.app.Fail(error);
            });

我收到Json解析错误。我似乎没有找到确切的问题。我能想到的只是UpdateCustomer的拒绝是在vue组件中进行的。

1 个答案:

答案 0 :(得分:2)

我认为你在if-else语句中有错误的逻辑。您已根据success逻辑拒绝了。

if (response.success){
   resolve(vm.CommonService.parseJson(response.data));
} else {
   reject(response.message);
}