Promise的特点:
每当 new 一个 Promise 实例的时候,就会立即执行这个异步操作中的代码。
也就是说, new 的时候,除了能够得到一个 Promise 实例之外,还会立即调用 我们为 Promise 构造函数传递的那个 function,执行这个function中的异步操作代码。
测试Promise特点代码示例:
const fs = require('fs') var promise = new Promise(function(){ fs.readFile('./file/1.txt', 'utf-8', (err, dataStr) => { if(err) throw err console.log(dataStr); }) })
通过 node 文件名的方式进行编译,这里使用的是nodejs的环境来开发,编译后立马就输出了 1111 就代表Promise中的函数操作会立马执行。
将Promise改为按需去调用,只需要将Promise的代码放到函数中即可。
function getFileContent(fpath) { var promise = new Promise(function(){ fs.readFile(fpath, 'utf-8', (err, dataStr) => { if(err) throw err console.log(dataStr); }) }) });
Js中的代码只有放到函数中的代码才会按需执行,其他的代码放到JS文件中都会立即执行的。