(Knoten:2684) UnhandledPromiseRejectionWarning: Unbehandelte Versprechen Ablehnung (Ablehnung-id: 1): TypeError: Cannot read property 'dann' undefined

Ich bin mit .dann zum ersten mal statt .dann nutze ich den callback-Funktion.

Unten ist mein code-snippet:

phantom.create().then(function (ph) {
    ph.createPage().then(function (page) {
        page.open("http://codebeautify.org/xmlvalidator").then(function (status) {
            page.render(base_pdf_path + lpnumber + '.pdf').then(function () {
                console.log('PDF generated for waybill');
                //Insert waybill url in db.
                return waybill_url.insertWaybillUrl('Lpsimer', waybillUrl).then(function (waybill_inserted_resp) {
                    callback(null, true);   
                }).catch(function (error) {
                    callback(err_waybill_inserted);
                });
            });
        });
    });
});

Die obige Funktion ist eine Funktion aufrufen, die ist da unten, das ist in einer anderen Datei und ordnungsgemäß aufgerufen mit dem Namen ist waybill.js:

var mongoose = require('mongoose');
var q = require('promised-io/promise');

var WaybillUrlSchema = new mongoose.Schema({
    lpnumber: String,
    url: String,
    waybilltime: Date
});

module.exports = {

    insertWaybillUrl: function (lpnumber, url) {
        var defer = q.defer();
        var waybill_insert = new waybill_url({
            lpnumber: lpnumber,
            url: url,
            waybilltime: new Date()
        });

        //Save model to MongoDB
        waybill_insert.save(function (err, inserted_waybill) {
            if (err) {
                return defer.reject(err);
            }
            else {
                return defer.resolve(inserted_waybill);
            }
        });
    }
};

Bisher war ich mit diesem Muster zu machen, Rückrufe und es war in Ordnung arbeiten:

waybill_url.insertWaybillUrl('Lpsimer', waybillUrl, function(err, success) {
   if (err) {

   } else {

   }
)}

Nun habe ich zu verwenden .dann durch Nutzung der phantom-code zu schreiben, PDF-und hat es geschafft, den job zu umständlich.

Brauchen Vorschläge, wie ich das machen kann Rückrufe Rückrufe innerhalb.

UPDATE

phantom.create().then(function (ph) {

    ph.createPage().then(function (page) {

        page.open("http://codebeautify.org/xmlvalidator").then(function (status) {
            page.render(base_pdf_path + lpnumber + '.pdf').then(function () {

                //Insert waybill url in db.

                waybill_url.insertWaybillUrl('Lpsimer', waybillUrl).then(function (waybill_inserted_resp) {

                    if (waybill_inserted_resp) {

                        callback(null, true);

                    }

                }).catch(function (error_waybill_url_insert) {

                    console.log("Error in inserting waybill:" + err_waybill_inserted);

                    callback(error_waybill_url_insert);
                });

            }).catch(function (error_render) {

                console.log("error_render");
                callback(error_render);
            });

        }).catch(function (error_open) {

            callback(error_open);

        });

    }).catch(function (error_create_page) {

        callback(error_create_page);

    });

}).catch(function (error_phantom_create) {

    callback(error_phantom_create);
});

Nun habe ich Hinzugefügt, fangen für jeden dann wie vorgeschlagen von rsp in seiner Antwort, aber jetzt bin ich immer Fehler, die ich haben gefangen und senden Sie es an einen anderen callback:

Nicht Lesen-Eigenschaft "und dann" undefined

Bin ich immer diese Fehlermeldung, wo ich Hinzugefügt Konsole.log("error_render");
das ist, wo ich bin aufrufende Seite.render-Funktion des phantom.

Meine Anforderung ist einfach. Ich will generieren einer PDF-Datei mithilfe von phantom-und dann will ich einfach nur eine andere Funktion aufrufen, die in einer anderen Datei waybill_url, Funktion-name: waybill_url.insertWaybillUrl. Aber aufgrund von Rückrufen und asynchrone Verhalten dieser einfache Aufruf von zwei Funktionen ist immer umständlich.

InformationsquelleAutor Harsimer | 2017-02-22
Schreibe einen Kommentar