<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div class="container">
<h2 class="page-header">Promise发封装AJAX操作</h2>
<button class="btn btn-primary" id="btn">
点击发送AJAX
</button>
</div>
<script>
//接口地址 https://api.apiopen.top/getJoke
// 获取元素对象
const btn = document.querySelector("#btn");
btn.addEventListener('click', function () {
const p=new Promise((resolve,reject)=>{
// 1.创建对象
const xhr = new XMLHttpRequest();
// 2.初始化
xhr.open('GET', 'https://api.apiopen.top/getJoke')
// 3.发送
xhr.send();
// 4.处理响应结果
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
//判断响应状态码2xx
if (xhr.status >= 200 && xhr.status < 300) {
//控制台输出响应体
// console.log(xhr.response);
resolve(xhr.response)
}
else {
//控制台输出响应状态码
// console.log(xhr.status);
reject(xhr.status)
}
}
}
});
// 调用then方法
p.then(value=>{console.log(value);},
reason=>{
console.log(reason);
})
})
</script>
</body>
</html>
// util.promisify 方法
const util=require('util');
//引入fs模块
const fs =require('fs')
//返回一个新的函数
let mineReadFile =util.promisify(fs.readFile);
mineReadFile('./resource/content.txt').then(value=>{
console.log(value.toString());
},reason=>{
console.log("出错了");
})
版权声明:本文为weixin_43791884原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。