`

异步的 js 接口

 
阅读更多
	Function.prototype.bindAs = function(operator){
		var me = this;
		return function(){
			var args = [me].concat([].slice.call(arguments, 0));
			return operator.apply(null, args);
		};
	};

	var createFuse = function(){
		var queue, fn, infire;
		queue = [];
		fn = function(process){
			var args = [].slice.call(arguments, 1);
			if(infire)
				process.apply(null, args);
			else
				queue.push(function(){
					process.apply(null, args);
				});
		};
		fn.fire = function(){
			while(queue.length)
				queue.shift()();
			infire = true;
		};
		return fn;
	};

	// 导火线模型的应用部分,从这里看起
	var swfReady = createFuse(); // 创建一根导火线(在实际的复杂项目中,可根据需要任意创建多个)

	var store = {
		set: function(name, value){
			window.alert(["set", name, value]);
		}.bindAs(swfReady), // 把 set 接口挂到导火线上

		get: function(name){
			// TODO:
		},

		remove: function(name){
			window.alert(["remove", name]);
		}.bindAs(swfReady) // 把 remove 接口也挂到导火线上
	};

	// 这里模拟用户的一堆随意调用
	store.set("name", "dron");
	store.set("sex", "boy");
	store.remove("sex");
	store.set("age", 18);

	setTimeout(function(){ // 这里延迟两秒,模拟 flash 加载完成
		swfReady.fire(); // 由 flash 加载完成触发的导火线点火,这一步,你将看到上边一堆 set,remove 的效果了(alert)
		store.set("sex", "girl"); // 这一句,说明了被挂到导火线上的接口,在点火完成后,仍然可以工作,当然不需要再次点火
	}, 2000);

 

分享到:
评论

相关推荐

    js 异步加载js, css文件

    当项目js(css)文件使用越来越多,js 文件的加载也成了性能上的一个问题,此资源能够在页面全部加载完成后异步加载js等资源文件,它可以顺序加载资源列表,也可以并发加载资源列表,它包含一个方法调用接口:...

    微信小程序-微信小程序异步调用接口

    一、异步请求的网址只支持https协议,所以调用接口用另外的一个域名做了一个跳转 二、下拉刷新 直接在js中监听这个事件就行,下拉没效果,后来才发现原本需要在全局的json window中先设置开启 三、没有像iOS中的...

    Starbucks一个私有星巴克订购API的Javascript接口

    Starbucks提供的私有JavaScript接口是为开发者设计的,允许他们集成星巴克的订购系统到自己的应用程序中,从而提供更个性化的用户体验。这个API可能是基于RESTful架构,通过HTTP请求与服务器进行交互,通常采用JSON...

    js异步上传文件插件

    在IT行业中,JavaScript(简称JS)作为前端开发的主要语言,其异步上传文件的功能是现代网页应用中的一个重要组成部分。这个“js异步上传文件插件”涵盖了三种不同的异步上传方式,结合HTML、JS和Ajax技术,为开发者...

    js实现的异步分页封装

    在"js实现的异步分页封装"中,可能包含以下组件设计: - **初始化**:组件初始化时,接收配置参数,设置初始状态,并绑定事件监听器。 - **加载数据**:内部定义一个`loadData`函数,负责发送Ajax请求获取数据,并...

    nodejs异步IO的实现

    随着JavaScript ES6及后续版本的引入,Node.js开始支持Promise和async/await语法,为异步编程提供了更优雅的解决方案。Promise可以链式调用,避免了回调地狱,而async/await则进一步提升了代码可读性,使得异步代码...

    Node.js连接OpenGauss异步转同步封装

    在IT行业中,Node.js是一种基于Chrome V8引擎的JavaScript运行环境,它以其高效的非阻塞I/O和事件驱动模型在服务器端编程中受到广泛应用。OpenGauss则是一款开源的关系型数据库管理系统,专为大规模数据处理设计,...

    将异步JavaScript函数转变成ES6生成器以便在他们可以在现代浏览器在nodejs中使用

    当与`yield`一起使用时,可以将生成器与Promise结合,创建一个能够控制异步流程的简洁接口。 转换过程通常包括以下步骤: 1. **识别异步操作**:找到现有的异步函数,如使用回调或Promise的函数。 2. **使用生成器...

    基于Python3的flask-celery异步请求与接口测试设计源码

    在当今的软件开发领域,异步编程和接口测试是提升系统性能和确保软件质量的关键技术。异步编程允许程序在等待外部操作完成时继续执行其他任务,有效提升了系统的并发处理能力。接口测试则通过模拟外部系统的交互来...

    Angular异步变同步处理方法

    首先,异步编程是JavaScript的核心特征之一,它允许JavaScript引擎在等待一个长时间操作(如网络请求)完成时,继续执行其他任务。异步操作典型地使用回调函数(callback)来处理操作完成时的行为,但过多的嵌套(回...

    不到1KB的小程序异步接口Promise化

    通过Promise化异步接口,开发者可以写出更加简洁、易读且易于维护的代码,同时利用async/await等现代JavaScript特性,使代码逻辑更加清晰。对于那些需要处理大量异步操作的微信小程序项目,这个库无疑是一个极好的...

    java文件异步上传

    首先,异步上传主要依赖于JavaScript和Ajax技术。`jQuery.uploadify`是一个广泛使用的JavaScript插件,用于实现文件的异步上传。在提供的文件列表中,`uploadify.css`和`jquery.uploadify-3.1.js`(以及其压缩版`...

    纯JS异步上传文件实例

    在`uploadReplace.js`和`czyx.js`中,可能会有处理异步上传的JavaScript代码,使用XMLHttpRequest或fetch API向服务器发送请求,上传文件数据。 3. **Ajax**:Ajax(异步JavaScript和XML)是创建动态网页的关键技术...

    jquery 异步treeTable树形插件

    《jQuery异步treeTable...3. 灵活的数据源:可以对接各种后端数据接口,如JSON、Ajax等,实现异步加载。 二、基本使用步骤 1. 引入依赖库:在HTML文件中引入jQuery库和treeTable插件的JavaScript及CSS文件。 ```html ...

    json数据jquery异步示例

    1. **AJAX**: AJAX是异步JavaScript和XML的缩写,尽管现在XML已经不常用,但这个术语仍然广泛用于描述通过JavaScript异步与服务器通信的技术。jQuery提供了一个方便的`.ajax()`方法,可以用来发送异步请求。 2. **$...

    AJAX的魔力:异步JavaScript和XML的现代之旅

    JavaScript(通常缩写为JS)是一种高级的、解释型的编程语言。它是一种轻量级,基于原型的语言,通常用于网页上,实现客户端的脚本编程。以下是JavaScript的一些关键特点: 1. **脚本语言**:JavaScript通常作为...

    JavaScript 用fetch 实现异步下载文件功能

    本文将详细解析如何使用JavaScript中的fetch API来实现文件的异步下载功能。首先,我们会介绍fetch API的基本用法,然后通过一个具体的实例代码来演示如何结合HTML和JavaScript来完成这一任务。 fetch API是现代...

    js天气预报 js版天气预报接口

    综上所述,实现"js天气预报 js版天气预报接口"项目,需要掌握JavaScript基础、AJAX请求、API接口调用、HTML/CSS页面构建、数据处理及错误处理等技能。通过对这些知识点的理解和实践,你可以构建一个动态的、用户友好...

    原生js上传文件,异步上传

    本主题将深入探讨如何使用原生JavaScript实现异步文件上传,包括利用`FormData`对象、Base64编码以及对图片进行压缩、变色和尺寸调整的方法。 一、异步上传 传统的文件上传通常依赖于表单的`<form>`元素,通过`...

Global site tag (gtag.js) - Google Analytics