在我的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;
}
}
我希望从index.html的sendSms中获取结果
var result = app.sendSms(number, message);
我不确定此方法叫什么,但是在回调后无法获取该值。我的结果将是“退货”。
答案 0 :(得分:2)
因为sms.send
是asynchronous
函数。因此,return result;
将在sms.send
完成并触发successs
功能之前运行。您需要将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);
});
}