Async: forEachOf - callback terakhir tidak dipanggil

Dibuat pada 29 Jun 2015  ·  1Komentar  ·  Sumber: caolan/async

EDIT: Masalah terselesaikan (Saya berbicara terlalu cepat!) ... (lihat di bawah)

Saya menggunakan metode .forEachOf untuk melempar callback setelah melakukan iterasi melalui objek tertentu. Satu-satunya masalah adalah, callback terakhir yang diteruskan sebagai argumen ketiga untuk forEachOf sepertinya tidak pernah dilemparkan.

Berikut beberapa contoh kode masalahnya:

var async = require('async');

var anArray = [];

var testObj = {
    'a': '1',
    'b': '2',
    'c': '3'
};

async.forEachOf(testObj, function (elem, key, callback) {
    console.log(elem);

    anArray.push(elem);
}, function (err) {
    if (err) {
        console.error(err.message);
    }

    console.log("This line should be printed at the end.", anArray);
});

Ini dia di Runnable: http://code.runnable.com/VZELB92Qa1Y7JQuq/async-foreachof-node-js-not-working-2-for-callback

Sekarang saya bisa melakukan sesuatu yang benar-benar salah di sini, tetapi saya telah memposting pertanyaan ini ke / r / node di reddit dan Stack Overflow , dan tidak mendapat tanggapan yang membantu. Apa yang saya lakukan salah di sini? Ini membuatku gila!!!

EDIT: Sepertinya dalam contoh awal ini, saya lupa menambahkan pernyataan 'return callback ()'. Dalam contoh khusus di mana saya benar-benar mengalami masalah ini dalam kode saya, saya memiliki metode asinkron kedua di mana saya membuat pernyataan 'return callback ()' ini. Sepertinya saya perlu menggunakan fitur aliran kontrol lain untuk memanggil callback setelah metode asinkron kedua selesai berjalan. Permintaan maaf saya. Harap tutup masalah ini secepatnya !!!

Di sisi lain, saya percaya bahwa akan sangat membantu bagi pengguna lain di masa mendatang yang menggunakan metode ini untuk mengetahui cara menggunakan pernyataan 'return callback ()' dengan benar. Dokumentasi jelas kurang di bidang ini, dan tidak banyak di luar sana tentang metode individu di perpustakaan ini apa adanya sehingga mencari bantuan sangat lambat, membosankan, dan sulit!

question

Komentar yang paling membantu

Bung, Anda perlu memanggil 'callback ()' setelah setiap iterasi.

async.forEachOf(testObj, function (elem, key, callback) {
    console.log(elem);
    anArray.push(elem);
callback() //<<<<<<<<<
},...

>Semua komentar

Bung, Anda perlu memanggil 'callback ()' setelah setiap iterasi.

async.forEachOf(testObj, function (elem, key, callback) {
    console.log(elem);
    anArray.push(elem);
callback() //<<<<<<<<<
},...
Apakah halaman ini membantu?
0 / 5 - 0 peringkat