どのようにユニアプリが問題を解決するために、非同期リクエストを呼び出すことで、サイクルのための配列データから抜け出しますか?

概要/諸曁銭

ドッキング・インターフェースは、forループ、非同期呼び出し要求に遭遇するような状況は、戻り値は任意の順序であり、したがって、次のコードでは、プッシュするときに一度前ユニアプリJSを行います値の配列が、各注文は、異なるされ、このような理由を引き起こしている可能性があり、ループのシングルスレッドであり、非同期要求をforループの終わりにしばしばF、マルチスレッド化された、非同期要求がまだ終わっていません。

 

that.list = res.datas.class_list。
                            
ためVAR i = 0; iはthat.list.lengthを<; iは++ ){
   that.list [i]を.tlist = []
VAR URL = "W = goods_class&gc_id =" + that.list [i]は.gc_id.substring(2 )。
    that.thtxb_ajax_request(URL、{})。次に、((RES) => { 
        that.tlist.push(res.datas.class_list)
        })
    }

ユニアプリケーションフレームワーク、同様の遭遇そのようなコードでは、再帰的なアルゴリズムは、forループの終了を回避するために使用することができ、非同期要求の問題は終わっていない、上記のコードは、再帰的な形に変化次

that.list = res.datas.class_list。
                            
    するvar i = 0 ; 

    getImg(); 
    機能getImg(){
         もし(I> = that.list.length){
         リターン
    } 
    that.list [I] .tlist = []
     VaRの URL = "W = goods_class&gc_id =" + that.list [i]は.gc_id.substring(2 )。
    that.thtxb_ajax_request(URL、{})を((RES) => { 
        that.tlist.push(res.datas.class_list)
        iは ++ 
        getImgを(); 
        })
    }

この変形例によれば、呼び出しは非同期リクエストの問題でサイクルのために回避することができます。

 

他のjsがまた、再帰的なアルゴリズムを使用してのアイデアを思考のこのラインをたどることができます。

おすすめ

転載: www.cnblogs.com/zhujiqian/p/11532935.html