这是来自我的 node-webkit 应用程序的 javascript 代码,使用 jquery 和 nedb 来管理数据库。
librodb.find({_id: docs[i].libro}, function (err, bookdoc) {
window.titulo = bookdoc[0].titulo;
window.ISBN = bookdoc[0].ISBN;
});
它从数据库中读取条目并将它们返回到一个数组(bookdoc)中。
for (var i = 0; i < docs.length; i++) {
librodb.find({_id: docs[i].libro}, function (err, bookdoc) {
window.titulo = bookdoc[0].titulo;
window.ISBN = bookdoc[0].ISBN;
});
switch(docs[i].razon){
case 1:
$(".listed").append('<li><i class="fa fa-institution"></i><i class="fa fa-sign-in"></i>El '+docs[i].fecha+' '+docs[i].cantidad+' Libros ("'+window.titulo+'", ISBN: '+window.ISBN+') producidos.</li>');
break;
case 2:
libreriadb.find({_id: docs[i].libreria}, function (err, librarydoc) {
window.nombre = librarydoc[0].nombre;
});
$(".listed").append('<li><i class="fa fa-institution"></i><i class="fa fa-sign-in"></i>El '+docs[i].fecha+' '+docs[i].cantidad+' Libros ("'+window.titulo+'", ISBN: '+window.ISBN+') devueltos por Libreria ("'+window.nombre+'"), recibo '+docs[i].documento+'.</li>');
break;
case 3:
$(".listed").append('<li><i class="fa fa-question"></i><i class="fa fa-sign-in"></i>El '+docs[i].fecha+' '+docs[i].cantidad+' Libros ("'+window.titulo+'", ISBN: '+window.ISBN+') en stock ingresaron por "'+docs[i].descripcion+'".</li>');
break;
}
}
问题是变量 window.titulo 和 window.ISBN 是在读取数据库函数内部定义的,但在外部没有。
如果我使用
window.variablename=
当我在 de librodb.find 函数之后调用变量时,都返回“未定义”。
如果我使用
var 变量名=
或者
变量名=
执行停止并出现以下错误:“ReferenceError:titulo 未定义”(在我尝试从开关调用它的地方)。
在所有这三种情况下,librodb.find 函数中的警报都会返回应该返回的值。
我如何定义或调用变量?