SendOTP功能正常工作并返回数据。我试图将其分配给变量。
JS:
var SentStatus = "";
DataFactory.SendOTP('39487539847')
.success(function (data, status) {
console.log('1 : ' + data);
console.log('2 : ' + JSON.parse(data));
SentStatus = JSON.parse(data);
})
.error(function (data, status) {
SentStatus = JSON.parse(data);
});
console.log('3 : ' + SentStatus);
在浏览器控制台中,我看到:
3 :
1 : "\"200\""
2 : 200
修改
var SentStatus = "";
DataFactory.SendOTP('39487539847')
.then(function (data, status) {
SMSSentStatus = JSON.parse(data);
})
.catch(function (data, status) {
SMSSentStatus = JSON.parse(data);
})
.finally(function () {
console.log('3 : ' + SMSSentStatus);
});
dataFactory.SendOTP = function (mobileNumber) {
return $http({
url: GlobalVariables.vcAPIBaseUrl + "SendOTP",
method: "GET",
params: {
mobileNumber: mobileNumber
}
}).success(function (data, status) {
}).error(function (data, status) {
});
};
解决:
.then(),catch()和.finally()都有效。我只是没有正确读取数据。
在我的情况下,它必须是SMSSentStatus = JSON.parse(data.data)
。
答案 0 :(得分:3)
这里成功和错误是回调函数,这意味着异步本质上是一个调用被发送到DataFactoru.SendOTP并且事件被注册到事件列表器并等待响应的同时你的console.log('3:'+ SentStatus );同时运行,显然你还没有价值所以它只是打印“3:”。得到响应后它启动成功功能并打印其他两个控制台。
顺序是
3-> 1> 2简单: - )
抱歉英语不好