ようですが、非同期操作async moduleを制御することは非常に簡単ですか、非同期のように、より良い伐採であるvasyncを使用することができ、それを行うことができます例です。
var postSomething1 = function(cb) {
$http.post(URL1, params1).success(function(data){
cb(null, data);
})
.error(cb);
};
var putSomething = function(cb) {
$http.put(URL1, params1).success(function(data){
cb(null, data);
})
.error(cb);
};
var tasks = [
postSomething,
putSomething
];
var done = function(err, result){
console.log("Complete with err", err, " result", result);
};
async.parallel(tasks, done);
あなたはより多くのメソッドを持っているとして、あなたはこのようにリファクタリングすることができます実現:
var call = function(method, url, params) {
return function(cb) {
var method = method.toLowerCase();
$http[method](url, params).success(function(data){
cb(null, data);
})
.error(cb);
};
};
var tasks = [
call('POST', 'http://example.com/create/event', { event_name: 'Cool' }),
call('PUT', 'http://example.com/update', { name: 'Jon' }),
call('PUT', 'http://example.com/event/enable', { enable: true }),
call('GET', 'http://example.com/list/34')
...
];
var done = function(err, result){
console.log("Complete with err", err, " result", result);
};
async.parallel(tasks, done);
これは、平行ではありません。これらはネストされた順次呼び出しです。 – skubski
ありがとう、私は私の質問のタイトルを編集します:) –
'.success'を使用すると、' .then' – webduvet