新Promise ajax単一リクエストと複数リクエスト書き方を組み合わせる
2333 ワード
前言:一夜にして春風が来て、千樹万樹梨花が咲いて、今日の天気は突然とても寒くなって、また暖かい時です.自分はしばらくpromiseの書き方を忘れてしまうので、廖雪峰の大きな勉強文章を参考にして、書き方をまとめました.
単一ajaxリクエスト実行書き方
複数ajaxリクエスト実行書き方
単一ajaxリクエスト実行書き方
new Promise(function (resolve, reject) {
log('start new Promise...');
var timeOut = Math.random() * 2;
log('set timeout to: ' + timeOut + ' seconds.');
setTimeout(function () {
if (timeOut < 1) {
log('call resolve()...');
resolve('200 OK');
}
else {
log('call reject()...');
reject('timeout in ' + timeOut + ' seconds.');
}
}, timeOut * 1000);
// ajax
}).then(function (r) {
log('Done: ' + r);
}).catch(function (reason) {
log('Failed: ' + reason);
});
複数ajaxリクエスト実行書き方
function multiply(input){
return new Promise(function(resolve,reject){
// ajax , ajax
$.ajax({
"type":"get/post",
"async":true,
"url":'',
"data":JSON.stringify({"name":value})|| "",
"success": function(res){
resovle(res);
},
"error": function(err){
reject(err);
}
})
})
}
// 0.5 input+input :
function add(input) {
return new Promise(function (resolve, reject) {
// ajax , ajax
$.ajax({
"type":"get/post",
"async":true,
"url":'',
"data":JSON.stringify({"name":value})|| "",
"success": function(res){
resovle(res);
},
"error": function(err){
reject(err);
}
})
});
}
var p = new Promise(function (resolve, reject) {
// ajax , ajax
$.ajax({
"type":"get/post",
"async":true,
"url":'',
"data":JSON.stringify({"name":value})|| "",
"success": function(res){
resovle(res);
},
"error": function(err){
reject(err);
}
})
});
p.then(multiply)
.then(add)
.then(multiply)
.then(add)
.then(function (result) {
log('Got value: ' + result);
});