
javascript 回调函数异步执行问题
在使用 javascript 时,遇到异步问题怎么办?以下是一段代码:
var beornoimgto = function(baiduurl) {
var du;
appframe.http.get(baiduurl, function(ret) { //为回调函数
if (ret.status == "402") {
du= "fukeyou";
}
else du= baiduurl;
})
return du;
}问题是,调用 beornoimgto 函数后,appframe.http.get 函数还没执行完,就返回了。如何解决这个问题,让 appframe.http.get 执行完毕后再返回?
AI 舌诊面诊问诊医疗系统 + 诊疗商城系统源码是一套结合 AI 辅助诊断与商品转化的健康类程序,基于浩创云、ThinkPHP(PHP)开发,支持微信服务号与 H5 端,适合做中医舌诊面诊问答、健康建议推送以及配套诊疗商品的运营。
解决方法
立即学习“Java免费学习笔记(深入)”;
无法直接修改代码让 appframe.http.get 执行完毕后才返回。可以尝试以下方法:
- 在回调函数中将结果赋值给 beornoimgto 变量:
var beornoimgto = function(baiduurl) {
appframe.http.get(baiduurl, function(ret) { //为回调函数
if (ret.status == "402") {
beornoimgto = "fukeyou";
}
else beornoimgto = baiduurl;
})
}- 创建一个函数,将要执行的操作封装起来,然后在回调函数中调用:
function doSomething(beOrNoimgTo) {
// 要执行的操作
}
AppFrame.Http.Get(baiduurl, function(ret) { //为回调函数
if (ret.status == "402") {
doSomething("fukeyou");
}
else doSomething(baiduurl);
})

















