gpt4 book ai didi

javascript - 如何使一个 javascript 函数在另一个函数完成后运行?

转载 作者:数据小太阳 更新时间:2023-10-29 06:11:29 24 4
gpt4 key购买 nike

我正在使用 Apache Cordova 开发移动应用程序。问题是我想获取手机号码,然后通过 jQuery get 函数发送它以获得授权。所有功能都可以,但获取手机号码的功能比其他功能慢,最后完成。

我的代码摘要是这样的:

document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
devicePhoneNumber();
alert("ALERT1"); // ALERT1
};
function devicePhoneNumber() {
var telephoneNumber = cordova.require("telephonenumber");
telephoneNumber.get(function (result) {
alert(result); //ALERT2
}, function () {
alert("error");
});
};

我不知道为什么先得到 ALERT1,然后得到 ALERT2。我想在获得 ALERT2 后运行我的其他代码。

如有任何建议,我们将不胜感激。

最佳答案

如果 telephone.get 是异步的,您需要等待它完成才能发出第一个警报

document.addEventListener("deviceready", onDeviceReady, false);

编写您的 devicePhoneNumber 函数以接受回调 done。回调接收两个参数,err(如果存在)和result。无论 telephoneNumber.get 是什么,回调仍将被调用

function devicePhoneNumber(done) {
var telephoneNumber = cordova.require("telephonenumber");
telephoneNumber.get(function (result) {
done(null, result);
}, function () {
done(Error("There was an error getting the phone number."));
});
}

现在要使用该函数,请向函数传递一个回调,该回调接受两个参数 errresult。在您的回调中,检查错误。如果存在,请相应处理。您可以使用 err.message 访问错误消息。

function onDeviceReady() {
devicePhoneNumber(function(err, result) {
if (err) return alert(err.message);
alert("Alert 1"); // alert 1
alert(result); // alert 2
});
}

关于javascript - 如何使一个 javascript 函数在另一个函数完成后运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25802412/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com