mirror of
https://gitee.com/layui/layui.git
synced 2025-06-28 13:34:27 +08:00
parent
537748e499
commit
c32e65b944
@ -389,35 +389,36 @@ before: function(obj){ // obj 参数同 choose
|
|||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
// 返回 jQuery Deferred.promise 对象或 JS 原生 Promise 对象,reject 表明阻止上传(2.9.11+)
|
// 返回 jQuery Deferred 对象或 JS 原生 Promise 对象,false 或 Promise.reject 表明阻止上传(2.9.11+)
|
||||||
// Promise
|
// Promise
|
||||||
|
/** @type {(obj: object) => boolean | JQueryDeferred<boolean> | Promise<boolean>} */
|
||||||
before: function(obj){
|
before: function(obj){
|
||||||
return new Promise(function(resolve, reject){
|
return new Promise(function(resolve, reject){
|
||||||
setTimeout(function(){
|
setTimeout(function(){
|
||||||
console.log('before_async_task', obj);
|
console.log('before_async_task', obj);
|
||||||
resolve();
|
resolve(true);
|
||||||
}, 1000)
|
}, 1000)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// Deferred
|
// Deferred
|
||||||
before: function(obj){
|
before: function(obj){
|
||||||
return $.Deferred(function(deferred){
|
return $.Deferred(function(defer){
|
||||||
setTimeout(function(){
|
setTimeout(function(){
|
||||||
console.log('before_async_task', obj);
|
console.log('before_async_task', obj);
|
||||||
deferred.resolve();
|
defer.resolve(true);
|
||||||
}, 1000)
|
}, 1000)
|
||||||
}).promise();
|
}).promise();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Deferred2
|
// Deferred2
|
||||||
before: function(obj){
|
before: function(obj){
|
||||||
var deferred = $.Deferred();
|
var defer = $.Deferred();
|
||||||
setTimeout(function(){
|
setTimeout(function(){
|
||||||
console.log('before_async_task', obj);
|
console.log('before_async_task', obj);
|
||||||
deferred.resolve();
|
defer.resolve(true);
|
||||||
}, 1000)
|
}, 1000)
|
||||||
return deferred.promise();
|
return defer.promise();
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -471,20 +471,14 @@ layui.define(['lay', 'layer'], function(exports){
|
|||||||
}
|
}
|
||||||
// 上传前的回调 - 如果回调函数明确返回 false 或 Promise.reject,则停止上传
|
// 上传前的回调 - 如果回调函数明确返回 false 或 Promise.reject,则停止上传
|
||||||
if(typeof options.before === 'function'){
|
if(typeof options.before === 'function'){
|
||||||
var maybePromise = options.before(args);
|
upload.util.promiseLikeResolve(options.before(args))
|
||||||
if(maybePromise === false){
|
.then(function(result){
|
||||||
return;
|
if(result !== false){
|
||||||
}else if(typeof maybePromise === 'object' && typeof maybePromise.then === 'function'){
|
|
||||||
// 兼容 jQuery Deferred Promise 对象和原生 Promise 对象
|
|
||||||
// 类型检测不够完善,但足以满足此场景
|
|
||||||
maybePromise.then(function(result){
|
|
||||||
ready();
|
|
||||||
}, function(error){
|
|
||||||
layui.hint().error(error);
|
|
||||||
})
|
|
||||||
}else{
|
|
||||||
ready();
|
ready();
|
||||||
}
|
}
|
||||||
|
}, function(error){
|
||||||
|
error !== undefined && layui.hint().error(error);
|
||||||
|
})
|
||||||
}else{
|
}else{
|
||||||
ready();
|
ready();
|
||||||
}
|
}
|
||||||
@ -781,6 +775,19 @@ layui.define(['lay', 'layer'], function(exports){
|
|||||||
size = formatSize / Math.pow(1024, index);
|
size = formatSize / Math.pow(1024, index);
|
||||||
size = size % 1 === 0 ? size : parseFloat(size.toFixed(precision));//保留的小数位数
|
size = size % 1 === 0 ? size : parseFloat(size.toFixed(precision));//保留的小数位数
|
||||||
return size + unitArr[index];
|
return size + unitArr[index];
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 将给定的值转换为一个 JQueryDeferred 对象
|
||||||
|
*/
|
||||||
|
promiseLikeResolve:function(value){
|
||||||
|
var deferred = $.Deferred();
|
||||||
|
|
||||||
|
if(value && typeof value.then === 'function'){
|
||||||
|
value.then(deferred.resolve, deferred.reject);
|
||||||
|
}else{
|
||||||
|
deferred.resolve(value);
|
||||||
|
}
|
||||||
|
return deferred.promise();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user