我正在尝试为函数设置一个全局变量,以便在范围内的所有函数中使用它。使用async.series
:
exports.update = function(req, res, next){
var result = {}; // setting global var for the scope
var function1 = function(callback) {
MyModel.findOne(conditions)
.lean()
.exec(function(err, docs) {
if (err) {
return callback(err, null);
}
result.docs = docs; // assigning function result to global var
return callback(null, 'done');
});
};
var function2 = function(callback) {
var fieldsToSet = {
// ...
somefield: result.docs.someproperty // error here result.docs = null
};
Mymodel.create(fieldsToSet, function(err, record) {
// ...
});
};
};
require('async').series([function1, function2]);
};
返回错误:
TypeError: Cannot read property 'someproperty' of null
在这种情况下,我如何获得财产?谢谢。
答案 0 :(得分:-1)
旧答案
在#include <algorithm>
#include <iostream>
#include <vector>
using namespace std;
struct greater_than
{
int k;
greater_than(int k) : k(k) {}
bool operator () (int val) const {
return val > k;
}
};
int main()
{
int ar[4] = { 10,44,36,14 };
vector<int> shiva(ar, ar + 4);
int k;
cin >> k;
cout << count_if(shiva.begin(), shiva.end(), greater_than(k)) << endl;
}
之外声明result
。必须在这种情况下工作。
编辑:如果那是你想要的,那么可能使exports.update
等于里面的空对象。
截至12月17日的新答案
@ASem:如果您还在努力,可以在result
下定义result.docs = {};
吧吗?