import { ModelClass } from "engine/injector/Injector";
import { Inject } from "core/injector/Injector";
import { environment } from "engine/env/Environment";
@ModelClass
export class ExerciseProxy {
private polyfill_suffix : string = "/s17/lib/polyfill/polyfill.min.js" ;
private vue_suffix : string = "/s17/lib/vue/2.2.5/vue.min.js" ;
private vuex_suffix : string = "/s17/lib/vue/plugin/vuex/2.2.1/vuex.min.js" ;
private venus_js_suffix : string = "/s17/lib/venus/2.5.1/venus.min.js" ;
private venus_css_suffix : string = "/s17/lib/venus/2.5.1/css/venus.min.css" ;
private initialized : boolean = false ;
public startInitialize( completeCbk: ( ) => void): void
{
if ( this.initialized ) {
setTimeout( function () {
completeCbk( ) ;
}, 0 ) ;
}
let __promise = window["Promise"] ;
let env: string = environment.env ;
let promise = new __promise( ( resolove, reject ) => {
let script = document.createElement("script") ;
script.type = 'text/javascript';
document.head.appendChild( script ) ;
let url = environment.toCDNHostURL(this.polyfill_suffix, false, false) ;
script.onload = function ( evt: Event ): void {
resolove("polyfill success") ;
} ;
script.src = url ;
} ) ;
promise.then( (data: string) => {
let promise = new __promise( ( resolove, reject ) => {
let script = document.createElement("script") ;
script.type = 'text/javascript';
document.head.appendChild( script ) ;
let url = environment.toCDNHostURL(this.vue_suffix, false, false) ;
script.onload = function ( evt: Event ): void {
resolove("vue success") ;
} ;
script.src = url ;
} ) ;
return promise ;
} ).then( (data: string) => {
let promise = new __promise( ( resolove, reject ) => {
let script = document.createElement("script") ;
script.type = 'text/javascript';
document.head.appendChild( script ) ;
let url = environment.toCDNHostURL(this.vuex_suffix, false, false) ;
script.onload = function ( evt: Event ): void {
resolove("vuex success") ;
} ;
script.src = url ;
} ) ;
return promise ;
} ).then( (data: string) => {
let promise = new __promise( ( resolove, reject ) => {
let script = document.createElement("script") ;
script.type = 'text/javascript';
document.head.appendChild( script ) ;
let url = environment.toCDNHostURL(this.venus_js_suffix, false, false) ;
script.onload = function ( evt: Event ): void {
resolove("venus_js success") ;
completeCbk( ) ;
} ;
script.src = url ;
} ) ;
return promise ;
} ).then( (data: string) => {
let promise = new __promise( ( resolove, reject ) => {
let link = document.createElement('link');
link.rel = 'stylesheet';
link.type = 'text/css';
document.head.appendChild( link ) ;
let url = environment.toCDNHostURL(this.venus_css_suffix, false, false) ;
link.onload = function ( evt: Event ): void {
resolove("venus_css success") ;
completeCbk( ) ;
} ;
link.href = url ;
} ) ;
return promise ;
} ) ;
}
}
- Javascript - Promise学习笔记
最近工作轻松了点,想起了以前总是看到的一个单词promise,于是耐心下来学习了一下. 一:Promise是什么?为什么会有这个东西? 首先说明,Promise是为了解决javascript异步编 ...
- 路由的Resolve机制(需要了解promise)
angular的resovle机制,实际上是应用了promise,在进入特定的路由之前给我们一个做预处理的机会 1.在进入这个路由之前先懒加载对应的 .js $stateProvider .state ...
- angular2系列教程(七)Injectable、Promise、Interface、使用服务
今天我们要讲的ng2的service这个概念,和ng1一样,service通常用于发送http请求,但其实你可以在里面封装任何你想封装的方法,有时候控制器之间的通讯也是依靠service来完成的,让我 ...
- 闲话Promise机制
Promise的诞生与Javascript中异步编程息息相关,js中异步编程主要指的是setTimout/setInterval.DOM事件机制.ajax,通过传入回调函数实现控制反转.异步编程为js ...
- 深入理解jQuery、Angular、node中的Promise
最初遇到Promise是在jQuery中,在jQuery1.5版本中引入了Deferred Object,这个异步队列模块用于实现异步任务和回调函数的解耦.为ajax模块.队列模块.ready事件提供 ...
- Promise的前世今生和妙用技巧
浏览器事件模型和回调机制 JavaScript作为单线程运行于浏览器之中,这是每本JavaScript教科书中都会被提到的.同时出于对UI线程操作的安全性考虑,JavaScript和UI线程也处于同一 ...
- JavaScript进阶之路——认识和使用Promise,重构你的Js代码
一转眼,这2015年上半年就过去了,差不多一个月没有写博客了,"罪过罪过"啊~~.进入了七月份,也就意味着我们上半年苦逼的单身生活结束了,从此刻起,我们要打起十二分的精神,开始下半 ...
- 细说Promise
一.前言 JavaScript是单线程的,固,一次只能执行一个任务,当有一个任务耗时很长时,后面的任务就必须等待.那么,有什么办法,可以解决这类问题呢?(抛开WebWorker不谈),那就是让代码异步 ...
- 浅谈Angular的 $q, defer, promise
浅谈Angular的 $q, defer, promise 时间 2016-01-13 00:28:00 博客园-原创精华区 原文 http://www.cnblogs.com/big-snow/ ...
- angular学习笔记(二十八-附2)-$http,$resource中的promise对象
下面这种promise的用法,我从第一篇$http笔记到$resource笔记中,一直都有用到: HttpREST.factory('cardResource',function($resource) ...
随机推荐
- JDK8中的ConcurrentHashMap源码
背景 上文JDK8中的HashMap源码写了HashMap,这次写ConcurrentHashMap ConcurrentHashMap源码 /** * Maps the specified key ...
- 树莓派开启VNC远程桌面
分类: Raspberry Pi Linux2013-03-12 10:18 4288人阅读 评论(1) 收藏 举报 目录(?)[+] 1.安装VNC sudo apt-get install ...
- SSH框架系列:Spring AOP应用记录日志Demo
分类: [java]2013-12-10 18:53 724人阅读 评论(0) 收藏 举报 1.简介 Spring 中的AOP为Aspect Oriented Programming的缩写,面向切面编 ...
- SIAMATIC S7-1200 中通过 Modbus RTU 如何读取地址范围 9999 到 65535 的输入字
原文地址 说明 除了需要 STEP 7 >= V13 SP1 (TIA Portal) 的软件,还需要 S7-1200 CPU 固件版本 >= V4 (文章编号: 6ES721x-1xx4 ...
- python-python基础2
本章内容: 1.列表.元组 2.字典 3.集合 4.文件操作 5.字符编码与转码 一.列表.元组操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 names= ...
- python操作mongoDB(pymongo的使用)
pymongo操作手册 连接数据库 方法一(推荐) import pymongo client = pymongo.MongoClient(host="localhost",por ...
- P1066 图像过滤
P1066 图像过滤 转跳点:
- 51nod 1099:任务执行顺序 贪心
1099 任务执行顺序 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 取消关注 有N个任务需要执行,第i个任务计算时占R[i]个空间,而后会释放一部分, ...
- http协议请求报文与响应报文分析
什么是HTTP协议: HTTP是一个属于应用层的面向对象的协议,由于其简捷.快速的方式,适用于分布式超媒体信息系统.它于1990年提出,经过几年的使用与发展,得到 不断地完善和扩展.目前在WWW中使用 ...
- R 《回归分析与线性统计模型》page140,5.1
rm(list = ls()) library(car) library(MASS) library(openxlsx) A = read.xlsx("data140.xlsx") ...