node
node中的异步操作
Node采用V8引擎处理JavaScript脚本,最大特点就是单线程运行,一次只能运行一个任务。这导致Node大量采用异步操作(asynchronous opertion),即任务不是马上执行,而是插在任务队列的尾部,等到前面的任务运行完后再执行。
node为了执行某一任务的后续操作,利用回调函数来进行获取数据,但是上一步的操作可能会出现操作的错误,此次操作为异步操作,不能利用try-catch语句来进行错误的抛出
为此几乎大部分的异步回调函数的第一个参数都是一个error对象,第二个参数为上一步获取的值value
var fs = require('fs');
//利用异步操作的回调函数来抛出错误
fs.readFile('./10.txt',function(err,data) {
if (err) throw err;
console.log(data.toString());
})
//利用try-catch来进行抛出是无法抛出错误的
try {
fs.readFile('./10.txt', function(err, data) {
console.log(data);
})
} catch(e) {
console.log(e);
}
throw错误抛出.png
try-catch不会抛出错误.png
网友评论