//1. 传统的回调方式
var successCallBack = function (result) {
console.log("成功执行的结果是=" + result)
}
var failCallBack = function (result) {
console.log("失败执行的结果是=" + result)
}
function asyncFunc(successCallBackFunc, failCallBackFunc) {
var isSuccess = true;
//使用setTimeout模拟异步行为
setTimeout(function () {
//根据返回结果设置isSuccess的值
if (isSuccess) {
successCallBackFunc("返回值1");
} else {
failCallBackFunc("返回值2");
}
}, 1000);
}
asyncFunc(successCallBack, failCallBack);
//2. 使用Promise的回调
function asyncFuncPromise() {
return new Promise(function (resolve, reject) {
//使用setTimeout模拟异步行为
setTimeout(function () {
resolve("返回值3");
}, 1000);
});
}
const promise = asyncFuncPromise();
promise.then(successCallBack);
//3. then catch
var p = new Promise(function (resolve, reject) {
//使用setTimeout模拟异步行为
setTimeout(function () {
//resolve("返回值4");
reject("返回值5");
}, 1000);
}).then(successCallBack).catch(failCallBack);
//promise 链
p.then(function () { console.log("链1") }).then(function () { console.log("链2") });
//获取1-10秒的随机毫秒数
/*var randomMinSecs = Math.floor(Math.random() * 10+ 1)*1000;
//获取1-10秒的随机毫秒数
function getRandomMinSecs(){
return Math.floor(Math.random() * 10+ 1)*1000;
}
function mockAsyncTask(){
setTimeout(function(){
console.log("异步任务执行...")
},1000);
}
mockAsyncTask();
*/
/*
console.log(randomMinSecs);
new Promise(function(resolve,reject){
console.log("异步任务");
resolve("调用执行成功");
}).then(function(result){
console.log(result);
});*/
//
/*new Promise(function(resolve,reject){
setTimeout(function(){
console.log("异步任务");
resolve("调用执行成功");
},3000);
});*/
/*new Promise(function(resolve,reject){
//使用setTimeout模拟异步行为
setTimeout(function(){
console.log("异步任务");
resolve("调用执行成功消息");
},3000);
}).then(function(result){
console.log(result);
});
// catch
new Promise(function(resolve,reject){
//使用setTimeout模拟异步行为
setTimeout(function(){
reject("出错了");
},3000);
}).then(function(result){
console.log("成功:"+result);
}).catch(function(result){
console.log("异常:"+result);
});*/
console