コードセグメント1
リーリー
$.ajax を関数にカプセル化すると、promise を使用して型付けされた prepayment_operational が未定義になります。
コードセグメント2
リーリー
then に ajax を直接記述すると、必要な値を取得できます。そして、スニペット 1 に
を入れると、 リーリー
は
に変更されました リーリー
コードセグメント 1 は、prepayment_operational を通常どおりコンソール出力することもできます。
なぜそうなるのかお聞きしたいです。
then
取得するものは他のものではなく、関数である必要があります。 。 。loadMain().then(loadBtn)....
jQ 自体には、次のような Promise (遅延モジュール内) があります。 リーリー
この書き方は伝統的であり、次のとおりです:リーリー
これは、jQ の組み込み Promise メカニズムを使用します (Promise オブジェクトを動的に返します。
詳細については、jQ ドキュメントの「遅延オブジェクト」を参照してください。$.ajax
本身会返回Promise,可以挂.done()
或者.fail()
)。也可以用.promise()
)