2016-07-01 5 views
0

Ich versuche, eine Funktion bei der Fertigstellung einer Masseneinfügung Anfrage mit Node.js, der MSSQL-Bibliothek und SQL Server ausgeführt wird:Wie bekomme ich eine "fertig" Nachricht nach der Masseneinfügung?

sql.connect(config, function (err) { 
    // error handling 

    var request = new sql.Request() 
    request.bulk(table, function (err, rowCount) { 
    if (err) { 
     // error handling 
    } 
    }) 
    request.on('error', function (err) { // Doesn't Register 
    console.dir(err) 
    }) 
    request.on('done', function (returnValue, affected) { // Doesn't Register 
    MyClass.MyFunction() // FUNCTION I NEED TO CALL 
    }) 
}) 
sql.on('error', function (err) { 
    // error handling 
    sql.close() 
}) 

Weder der Fehler, noch das getan Ereignis ausgelöst wird. Ich muss MyFunction nur ausführen, nachdem die SQL-Anforderung abgeschlossen ist. Warum löst es das Ereignis nicht aus?

Antwort

1

Rückruf verwendet auf bulk Funktion, wie in documentation beschrieben:

request.bulk(table, function (err, rowCount) { 
    if (err) { 
     // error handling 
    } else { 
     MyClass.MyFunction(); 
    } 
}); 
+0

Das scheint mein Problem zu lösen, danke! – AmishJohn81

2

Von der documents wird Ihre Anfrage im .bulk() Rückruf durchgeführt. Nicht sicher, warum das Request 'done' Ereignis nicht aufgerufen wird, aber versuchen Sie es mit dem Massen-Callback.

request.bulk(table, function (err, rowCount) { 
    if (err) { 
     // error handling 
    } 
    console.log('Bulk insert is done, %s rows committed', rowCount); 
    }) 
+0

Wie die anderen Antwort, das ist mein Problem gelöst zu haben scheint, danke! – AmishJohn81

Verwandte Themen