看三小賤人,不要臉的賤畜生
/**
* 取得非同步工作
*/
function getAsyncTask(def) {
if (typeof getAsyncTask.index === 'undefined') {
getAsyncTask.index = 0;
}
return function() {
// debugger
console.log('mission(%d) begin', getAsyncTask.index);
setTimeout(function() {
// debugger;
console.log('mission(%d) finish', getAsyncTask.index++);
// important,通知工作結束
def.resolve();
}, (1000 + Math.random() * 2000));
};
}
////////////////////////////////////////////////////////////////////////
function doIt_1() {
// 對列
job_1().then(job_2).then(job_3).then(job_4);
/* ============================================================== */
function job_1() {
var def = $.Deferred();
var fun = getAsyncTask(def);
fun();
return def.promise();
}
/* ============================================================== */
function job_2() {
var def = $.Deferred();
var fun = getAsyncTask(def);
fun();
return def.promise();
}
/* ============================================================== */
function job_3() {
var def = $.Deferred();
var fun = getAsyncTask(def);
fun();
return def.promise();
}
/* ============================================================== */
function job_4() {
var def = $.Deferred();
var fun = getAsyncTask(def);
fun();
return def.promise();
}
/* ============================================================== */
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Promise.series用法
function job1() {
return new Promise(function (res, rej) {
console.log('p_1 start');
setTimeout(function () {
console.log('p_1 end');
res();
}, 2000);
});
}
function job2() {
return new Promise(function (res, rej) {
console.log('p_2 start');
setTimeout(function () {
console.log('p_2 end');
res();
}, 2000);
});
}
function job3() {
return new Promise(function (res, rej) {
console.log('p_3 start');
setTimeout(function () {
console.log('p_3 end');
res();
}, 2000);
});
}
/* ================================================ */
job1().then(function () {
return job2();
}).then(function () {
return job3();
});
沒有留言:
張貼留言