Mengapa hanya elemen pertama tatasusunan dengan 3 elemen objek boleh diakses?
PHP中文网
PHP中文网 2017-05-19 10:23:15
0
4
610


Terdapat tiga elemen dalam pengembangan status
Kemudian status[0] ialah elemen objek yang saya tolak masukstatus[0]是我push进去的对象元素
然后status[1]status[2]Kemudian status[1] dan status [ 2]Semua jenis yang tidak ditentukan, kenapa?

Berikut ialah kod lengkap Selepas mencubanya beberapa kali, saya rasa ia ada kaitan dengan skop pembolehubah Walau bagaimanapun, hasil pembolehubah tatasusunan adalah di lapisan paling luar luar?

function getStreamsStatus(channels) {
  var results = [];
  $.each(channels, function(index, channel) {
    var result = [];
    // result.push({ name: channel });
    $.getJSON (
      "https://api.twitch.tv/kraken/streams/" + channel,
      {
        Accept: "application/vnd.twitchtv.v5+json",
        client_id: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
        callback: ""
      },
      function(data) {
        result.push(data);
        $.getJSON(
          data._links.channel,
          {
            Accept: "application/vnd.twitchtv.v5+json",
            client_id: "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
            callback: ""
          },
          function(channel_data) {
            result.push(channel_data);
            // console.log(result);
            // console.log(result[0]);
            // console.log(result[1]);
          });
        console.log(result);
        console.log(result[0]);
        console.log(result[1]);
      });
    results.push(result);
    // console.log(result);
    // console.log(result[0]);
    // console.log(result[1]);
  });
  return results;
}
PHP中文网
PHP中文网

认证0级讲师

membalas semua(4)
给我你的怀抱

Ajax ialah proses tak segerak, dan fungsi panggil balik dilaksanakan selepas data diambil
Dan keputusan anda.push(hasil) sepatutnya telah ditolak masuk sebelum data diambil semula
Jadi apabila anda menyemaknya, ia belum lagi Push ke dalam tatasusunan data
Anda perlu menunggu sehingga data dimuatkan sebelum anda boleh melihat data dalam konsol
Perkara yang sama berlaku untuk sarang Ajax sebelumnya

PHPzhong

undefined juga boleh disimpan dalam tatasusunan, dan ia juga mempunyai panjang.

迷茫

Abang...sila ambil screenshot penuh,

Baiklah, jika anda menggunakan setiap satu, anda sudah mula melintasi array

$.each(statuses, function (index, status) {
  console.log(status)
})

Status output ialah setiap objek

黄舟

Dalam konsol, selepas mengklik pada tatasusunan, status masa nyata dipaparkan, tetapi apabila anda mencetak, hanya ada satu Kemudian, data itu datang secara tidak segerak dan diisi ke dalam tatasusunan. Anda akan tahu dengan mengeluarkan panjang hasil dalam kod

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan