亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

javascript 支持鏈式調(diào)用的異步調(diào)用框架Async.Operation

 更新時間:2009年08月04日 00:13:09   作者:  
javascript 支持鏈式調(diào)用的異步調(diào)用框架Async.Operation
復(fù)制代碼 代碼如下:

Async = {};
Async.Operation = function(options) {
options = options || {};
var callbackQueue = [];
var chain = (options.chain && options.chain === true) ? true : false;
var started = false;
var innerChain = null;
this.result = undefined;
this.state = "running";
this.completed = false;
this.yield = function(result) {
var self = this;
if (!chain) {
self.result = result;
self.state = "completed";
self.completed = true;
} else {
started = true;
self.result = result;
self.state = "chain running";
self.completed = false;
}
setTimeout(function() {
if (!innerChain) {
while (callbackQueue.length > 0) {
var callback = callbackQueue.shift();
if (chain) {
callbackResult = callback(self.result);
self.result = callbackResult;
if (callbackResult && callbackResult instanceof Async.Operation) {
innerChain = Async.chain();
while (callbackQueue.length > 0) {
innerChain.next(callbackQueue.shift());
}
innerChain.next(function(result) {
self.result = result;
self.state = "completed";
self.completed = true;
return result;
});
callbackResult.addCallback(function(result) {
self.result = result;
innerChain.go(result);
});
}
} else {
callback(self.result);
}
}
if (!innerChain) {
self.state = "completed";
self.completed = true;
}
} else {
while (callbackQueue.length > 0) {
innerChain.next(callbackQueue.shift());
}
innerChain.next(function(result) {
self.result = result;
self.state = "completed";
self.completed = true;
return result;
});
}
}, 1);
return this;
};
this.go = function(initialArgument) {
return this.yield(initialArgument);
}
this.addCallback = function(callback) {
callbackQueue.push(callback);
if (this.completed || (chain && started)) {
this.yield(this.result);
}
return this;
};
this.next = function(nextFunction) {
return this.addCallback(nextFunction);
};
};
Async.chain = function(firstFunction) {
var chain = new Async.Operation({ chain: true });
if (firstFunction) {
chain.next(firstFunction);
}
return chain;
};
Async.go = function(initialArgument) {
return Async.chain().go(initialArgument);
}

相關(guān)文章

  • js實現(xiàn)一個簡單的數(shù)字時鐘效果

    js實現(xiàn)一個簡單的數(shù)字時鐘效果

    本文主要介紹了js實現(xiàn)一個簡單的數(shù)字時鐘效果的示例代碼。具有很好的參考價值,下面跟著小編一起來看下吧
    2017-03-03
  • 不錯的新聞標題顏色效果

    不錯的新聞標題顏色效果

    [紅色]不錯的新聞標題顏色效果...
    2006-12-12
  • 微信小程序靜默登錄和維護自定義登錄態(tài)詳解

    微信小程序靜默登錄和維護自定義登錄態(tài)詳解

    這篇文章主要給大家介紹了關(guān)于微信小程序靜默登錄和維護自定義登錄態(tài)的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • webpack DllPlugin xxx is not defined解決辦法

    webpack DllPlugin xxx is not defined解決辦法

    這篇文章主要介紹了webpack DllPlugin xxx is not defined解決辦法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • JS獲取當(dāng)前日期和時間的簡單實例

    JS獲取當(dāng)前日期和時間的簡單實例

    這篇文章主要介紹了JS獲取當(dāng)前日期和時間的簡單實例,有需要的朋友可以參考一下
    2013-11-11
  • JS實現(xiàn)Ajax的方法分析

    JS實現(xiàn)Ajax的方法分析

    這篇文章主要介紹了JS實現(xiàn)Ajax的方法,結(jié)合實例形式分析了ajax的概念、原理、js實現(xiàn)與使用方法,需要的朋友可以參考下
    2016-12-12
  • JavaScript中數(shù)組雙重去重的方法總結(jié)

    JavaScript中數(shù)組雙重去重的方法總結(jié)

    這篇文章主要為大家學(xué)習(xí)介紹了JavaScript中數(shù)組雙重去重的幾個常用方法,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-07-07
  • 詳解JS中???和?.?和||的區(qū)別

    詳解JS中???和?.?和||的區(qū)別

    這篇文章主要介紹了詳解JS中???和?.?和||的區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06
  • javascript 窗口加載蒙板 內(nèi)嵌網(wǎng)頁內(nèi)容

    javascript 窗口加載蒙板 內(nèi)嵌網(wǎng)頁內(nèi)容

    用于在現(xiàn)有窗口上加載蒙板,在蒙板內(nèi)在嵌入其他頁面內(nèi)容
    2010-11-11
  • 原生js實現(xiàn)放大鏡效果

    原生js實現(xiàn)放大鏡效果

    本文主要分享了原生js封裝實現(xiàn)放大鏡效果的示例代碼,具有一定的參考價值,下面跟著小編一起來看下吧
    2017-01-01

最新評論