[英]Get returned value from function
In my cordova index.js, I have these code below: 在我的cordova index.js中,下面有这些代码:
var app = {
sendSms: function(strNumber, strMessage) {
var result = '';
var success = function () {
result = 'ok';
};
var error = function (e) {
result = 'failed';
};
sms.send(strNumber, strMessage, options, success, error);
return result;
}
}
From index.html, I wish to get the result from my sendSms 从index.html,我希望从我的sendSms获得结果
var result = app.sendSms(number, message);
I not sure what is this method called, but I am unable to get the value after it's callback. 我不确定这个方法叫什么,但是在回调之后我无法获取该值。 My result will be '' on return.
我的结果将是“返回时”。
Because sms.send
is asynchronous
function. 因为
sms.send
是asynchronous
函数。 So return result;
因此
return result;
will be run before sms.send
completes and triggers successs
function. 将在
sms.send
完成并触发successs
功能之前运行。 You need to wrap your sendSms
to a Promise
to return your result when sms.send
succeed. 您需要将
sendSms
包装到Promise
以便在sms.send
成功时返回结果。
sendSms: function(strNumber, strMessage) {
return new Promise(function (resolve, reject) {
var success = function () {
resolve('ok');
};
var error = function (e) {
reject(e);
};
sms.send(strNumber, strMessage, options, success, error);
});
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.