代码拉取完成,页面将自动刷新
// 1. Promise是一个构造函数,既然是构造函数,那么,我们就可以 new Promise()得到Promise的实例
// 2.在 PromLse上,有两个函数,分别叫做 resolve(成功之后的回调函数)和 reject(失败之后的回调函数)
// 3.在 Promise构造函数的 Prototype属性上,有一个.then()方法,也就说,只要是Prom⊥se构造函数创建的实例,都可以访问到.then()方法
// 4. Promse表示一个异步操作;每当我们new一个 Pronise的实例,这个实例,就表示一个具体的异步操作
// 5.既然 Promise创建的实例,是一个异步操作,那么,这个异步操作的结果,只能有两种状态
// 5.1状态1:异步执行成功了,需要在内部调用成功的回调函数xea01ve把结
// 5.2状态2:异步执行失败了,需要在内部调用失败的回调函数 reject把结果返回给调用者
// 5.3由于 Promise的实例,是一个异步操作,所以,内部拿到操作的结果后,无法使用 return把操作的结果返回给调用者这时候,只能使用回调函数的形式,来把成功或失败的结果,返回给调用者
// 6.我们可以在new出来的 Promise实例上,调用then()方法,【预先】为这个 PromIse异步操作,指定成功( resolve)和失败( reject)回调函数
//注意:这里new出来的 promise,只是代表[形式上]的一个异步操作
// 什么是形式上的异步操作:就是说,我们只知道它是一个异步操作,但是做什么具体的异步事情,目前还不清楚
// var promise = new Promise()
//这是一个具体的异生操作,其中,使用 function指定一个具体的异步操作
// var promise = new Promise(function(){
// //这个 function内部写的就是具体的异步操作!
// })
const fs = require('fs')
// 每当new 一个Promise实例的时候,就会立即执行这个异步操作中的代码
// 也就是说,new的时候,除了能够得到一个 promise实例之外,还会立即调用我们为 Promise构造函数传递的那个 function,执行这个 function中的异步操作代码
/* var promise = new Promise(
function(){
fs.readFile('./files/1.txt','utf-8',(err,dataStr)=>{
// if(err) throw err
// 如果报错,进入if分支后,if后面的代码就没有必要执行了
if(err) throw err
console.log(dataStr)
})
}
) */
//初衷:给路径,返回读取到的内容
function getFileByPath(fpath){
var promise = new Promise(
function(resolve,reject){
fs.readFile(fpath,'utf-8',(err,dataStr)=>{
// if(err) throw err
// 如果报错,进入if分支后,if后面的代码就没有必要执行了
// if(err) throw err
// console.log(dataStr)
if(err) return reject(err)
resolve(dataStr)
})
}
)
return promise
}
var p = getFileByPath('./files/2.txt')
p.then(function(data){
console.log(data+'------')
},function(err){
console.log(err+'------')
})
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。