来自分类 JavaScript2020-10-27 11:07:16
相当于 $(el).before('html' | element)
```javascript
el.insertAdjacentHTML('beforeBegin', 'html');
el.insertAdjacentElement('beforebegin', element)
```
相当于 $(el).prepend('html' | element)
```javascript
el.insertAdjacentHTML('afterBegin', 'html');
el.insertBefore(element, el.firstChild)
```
相当于 $(el).append('html' | element)
```javascript
el.insertAdjacentHTML('beforeEnd', 'html');
el.appendChild(element)
```
相当于 $(el).after('html' | element)
```javascript
el.insertAdjacentHTML('afterEnd', 'html')...
来自分类 JavaScript2017-09-28 17:15:03
```javascript
var array = [[4,'dasd'],[5,'dasd'],[1,'dasd'],[2,'dasd'],[3,'dasd'],[13,'dasd'],[23,'dasd']]
var newarray = []
array.map(i => {
let index = newarray.findIndex((j) => j[0] > i[0])
index === -1 ? newarray.push(i) : newarray.splice(index, 0, i)
});
console.log(newarray)
```...
来自分类 JavaScript2016-12-07 22:12:00
* Promise.all 会等所有 Promise 执行完毕后,把结果放在数组里
* Promise.reduce 按顺序执行
* Promise.mapSeries 方法,这个方法和 Promise.map 类似,只不过是顺序执行的
* Promise.each 方法,和 Promise.mapSeries 方法类似,都是顺序执行,区别是,返回的数组不是所有 Promise 的结果,而是传入 Promise.each 方法的原始数据数组
```javascript
var Promise = require('bluebird');
var p1 = new Promise((resolve, reject) => {
setTimeout(()=>{
resolve(1000)
}, 1000);
});
var p2 = new Promise((resolve, reject) => {
setTimeout(()=>{
resolve(2000)
}, 2000);
});
var p3 = new Prom...
来自分类 JavaScript2016-12-07 22:12:00
# apply
apply是一个非常好用的函数,可以让我们给一个函数预绑定多个参数并生成一个可直接调用的新函数,简化代码。
```javascript
async.apply(t.inc, 3);
// 等价于
function(callback) { t.inc(3, callback); }
```
```javascript
var t = {}
t.inc = function(n, callback, timeout) {
timeout = timeout || 200;
setTimeout(function() {
callback(null, n+1);
}, timeout);
}
t.fire = function(obj, callback, timeout) {
timeout = timeout || 200;
setTimeout(function() {
callback(null, obj);
}, timeout);
}
async.parallel([
fu...
来自分类 JavaScript2016-12-07 22:12:00
# auto
async.auto(tasks, [callback])
auto用来处理有依赖关系的多个任务的执行
如果中途出错,则会把错误交给最终callback,执行完任务的传给最终callback。未执行完成的函数值被忽略
```javascript
async.auto({
getData: function (callback) {
setTimeout(function(){
console.log('1.1: got data');
callback(null, 'mydata');
}, 300);
},
makeFolder: function (callback) {
setTimeout(function(){
console.log('1.1: made folder');
callback(null, 'myfolder');
}, 200);
},
wr...
来自分类 JavaScript2016-12-07 22:12:00
# compose
创建一个包括一组异步函数的函数集合,每个函数会消费上一次函数的返回值。
```javascript
function fn1(n,callback){
log('1.1.f enter: ',n);
setTimeout(function () {
callback(null, n + 1);
}, 10);
}
function fn2(n, callback) {
log('1.1.g enter: ',n);
setTimeout(function () {
callback(null, n * 2);
}, 10);
}
function fn3(n, callback) {
log('1.1.h enter: ',n);
setTimeout(function () {
callback(null, n - 10);
}, 10);
}
var fn = async.compose(fn1, fn2, fn3);
fn(4, funct...
来自分类 JavaScript2016-12-07 22:12:00
```javascript
var data = {
aaa: [11,22,33],
bbb: [44,55],
ccc: 66
};
var keys = [
{name: 'aaa', delay: 300},
{name: 'bbb', delay: 100},
{name: 'ccc', delay: 200}
];
```
# concat
async.concat(coll, iteratee, [callback])
将多个异步操作的结果合并为一个数组。
以并行方式对集合中各元素进行异步操作,然后把得到的结果合并为一个数组,传给最后的callback。
如果中途出错,则把错误以及已经完成的操作的结果交给最后callback。未执行完的则忽略。
```javascript
async.concat(keys, function(key,callback) {
setTimeout(function() {
callback(null, data[key.name]);
}, key.d...
来自分类 JavaScript2016-12-07 22:12:00
```javascript
var arr = [{
name: 'Jack',
delay: 200
}, {
name: 'Mike',
delay: 100
}, {
name: 'Freewind',
delay: 300
}];
```
# each
async.each(coll, iterate, [callback])
所有操作并发执行,且全部未出错,最终得到的err为undefined。注意最终callback只有一个参数err。
如果中途出错,则出错后马上调用最终的callback。其它未执行完的任务继续执行
```javascript
async.each(arr, (item, callback) => {
setTimeout(() => {
console.log(item.name);
callback(null, item.name);
}, item.delay);
}, (err) => console.log(err));
```
# eachS...
来自分类 JavaScript2016-12-07 22:12:00
```javascript
var arr = [1,2,3,6];
```
# every
async.every(coll, iteratee, [callback])
如果集合里每一个元素都满足条件,则传给最终回调的result为true,否则为false
```javascript
async.every(arr, function(item, callback){
log('1.1 enter: ',item);
setTimeout(function(){
log('1.1 handle: ',item);
callback(null, item<=10);
},100);
}, function(result) {
log('1.1 result: ', result);
});
// 32.233> 1.1 result: true
```
# everySeries
async.everySeries(coll, iteratee, callback)
串行
# everyLimit
async...
来自分类 JavaScript2016-12-07 22:12:00
```javascript
var arr = [1,2,3,6];
```
# filter
async.filter(coll, iteratee, [callback])
并行执行,对arr进行筛选。
```javascript
async.filter(arr, function(item, callback) {
log('1.1 enter: ' + item);
setTimeout(function() {
log('1.1 test: ' + item);
callback(null, item>=3);
}, 200);
}, function(results) {
log('1.1 results: ', results);
});
// ==> results: [ 3, 4, 5 ]
```
# filterSeries
async.filterSeries(coll, iteratee, [callback])
串行执行,对arr进行筛选。
```javascript
async.f...