關於ajax中return並不能作為方法的返回值

2022-02-28 16:50:31 字數 867 閱讀 6704

接下來關於ajax中的

return

值最後沒有辦法是方法的最終返回值問題

login(username,password)

,success:function(data),

error:function(err)

});}

我們能看到方法中明明return了但是 除錯卻發現 這個方法的返回值是defined

其實因為在ajax方法中

return

只是退出了

ajax

方法 並非是

login

方法的返回值

然後我們設定乙個新的變數,然後在ajax內部賦值,最後在ajax方法外return試試

仍然不行

ok這就涉及到

ajax

是非同步行為,所以就是在

return

的時候ajax

不一定拿到了值

我希望只有當status有資料的時候再返回

那其實這個思路就是錯的因為是非同步

的這個if只能判斷一次不是反覆判斷的

也就是說在ajax拿到值之後也未必會在進入

status

判斷嘗試用setstate的方法結果發現

setstate

竟然列印的結果不同

最後的解決方案,換個思路,你未必一定要讓你的方法有返回值可以把方法寫在ajax的success函式中去。

ajax中return不生效

function addsglr 方法中在ajax中直接寫return是不生效的 因為它返回的是ajax中的success方法,而不是addsglr 因此可以設定乙個全域性變數用來做判斷,實現停止的效果。注意 ajax一定要是同步的。function addsglr datatype json as...

自動判斷應該Ajax還是return

最近回顧以前的 發現乙個偶爾會見到的現象。乙個類裡面的方法可能需要ajax返回,也有可能需要函式return。這個現象發生在 mvc中的 邏輯層 或模型層 示例如下。indexctrl是控制器負責渲染頁面,proctrl是邏輯器負責讀取處理資料,a函式是例項化乙個類,m函式是讀取資料表的意思。現在只...

ajax驗證登入函式,return使用注意事項

這是乙個驗證是否登入的方法 is login 函式 if 判斷條件是滿足 data.code 0 的,因為涉及到重複呼叫,這裡是想在其他頁面呼叫這個函式的時候有返回值用於判斷,而之前我是在這裡直接 return true 發現這樣的結果是undefined,返回的這個true值只是當前的ajax方法...