异步无效。我正在使用SlimSelect.js和NeDB。 “ addable”已执行,但不要等待nedb更新添加新字段。谢谢
if [[ $( find filename -mmin +60 | wc -l ) -eq 1 ]]; then echo banana; fi
banana
答案 0 :(得分:-1)
如果未实现异步函数(不返回Promise),则不能只是“等待”异步函数(该函数稍后将执行回调并返回结果)。如果代码如下更改,则addable
返回Promise,
addable: function (value) {
var newid = "nuevo";
// if (value === 'bad') {return false}
var agrabar = {
name: value,
last_idcuenta: "null",
email: "notdefined@gmail.com",
memo: "not available",
auditlog: moment().format('MMMM Do YYYY, h:mm:ss a')
}
return new Promise((resolve, reject) => {
dclipro.update({name: value}, agrabar, options, function (err, numReplaced, upsert) {
if (err) {
console.error(err);
return reject(error);
}
newid = upsert._id;
resolve({ text: value, value: newid });
});
});
},
然后可以像这样await
let result = await selectclipro.addable('New name');
console.log(result.value);
,这应该在async
函数体中执行或包装在异步IIFE