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 执行完毕后再返回?
解决方法
无法直接修改代码让 appframe.http.get 执行完毕后才返回。可以尝试以下方法:
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); })