説明を探しています。太い矢印を使わずに試したバリエーション、同じ結果。 "^ 2.2.24"、FAIL:col.insert({}、cb)vs SUCCESS col.insert({}、()=> cb())
次のコードは動作しません(私は後で値をロードして、彼らはそこじゃない)
addCollections(data, cb) {
var names = Object.keys(data);
async.each(names, (name, cb1) => {
db.createCollection(name).then((collection) => {
collection.insert(data[name], cb1);
}).catch(cb1);
}, cb)
},
が、この:
"MongoDBのを" 使用 コードは仕事ん:以下も
addCollections(data, cb) {
var names = Object.keys(data);
async.each(names, (name, cb1) => {
db.createCollection(name).then((collection) => {
collection.insert(data[name], (a, b) => {
// reverted this comment bc Im debugging this
cb1();
})
}).catch(cb1);
}, cb);
},
作品:
addCollections(data, cb) {
var names = Object.keys(data);
async.each(names, (name, cb1) => {
db.createCollection(name).then((collection) => {
collection.insert(data[name], cb1);
}).catch(cb1);
},() => {
setTimeout(function() {
cb()
}, 10);
})
},
@Adamによって要求されるように(テスト用LIBとしてラボを使用して)
コールスタック:
execute(fixture, verify, cb) {
db.connect(() => {
db.drop(() => {
db.addCollections(fixture,() => {
this.executeNode(fixture, verify, cb);
});
});
});
},
executeNode(fixture, verify, cb) {
var injectOptions = {
method: 'GET',
url: 'myUrl
};
server.inject(injectOptions, function (response) {
verify(response.result);
db.close(cb);
});
},
test('default', (done) => {
fb.execute(fixture, verify, done);
});
約束事を 'async.js'と一緒に使用しないでください。 – Bergi
最初は正しいはずです。どのように呼び出すか、エラーを処理する方法を教えてください。 – Bergi
私は不思議です、なぜ非同期の約束はありませんか? – icetbr