Nodejs异步编程
2021-03-09 21:28
                         标签:turn   tms   api   catch   bsp   utf8   依次   promise   嵌套    Node.js异步编程    区别:同步API可以从返回值中拿到API执行结果,异步不行。 在异步API中使用回调函数获取执行结果: getMsg(data => console.log(data))               区别:执行顺序 同步:从上到下依次执行,前面代码会阻塞后面代码的执行。 Promise 基本使用方法     setTimeout(()=>{        if(true){            resolve({name:‘张三‘})        }else {            reject(‘失败了‘)        }     },2000) }); promise.then(result=>console.log(result)) let promise = new Promise((resolve,reject) =>{     fs.readFile(‘./1.txt‘,‘utf8‘,(error,result) =>{         if(error != null){             reject(error)         }else {            resolve(result);         }     }) }) promise.then((result) =>{   //then,执行resolve(result)=执行promise.then     console.log(result) }) .catch((error) =>{          //链式编程     console.log(error) }) /*  //callbackhell Nodejs异步编程 标签:turn   tms   api   catch   bsp   utf8   依次   promise   嵌套    原文地址:https://www.cnblogs.com/kmfc7/p/12861371.html
同步API:只有当前API执行完成后,才能继续执行下一个API;
         异步API:当前API的执行不会阻塞后续代码的执行。
function getMsg(callback) {
    setTimeout(function () {
       callback({
           msg:‘ALOHA‘
       })
    },2000)
}
异步:不会等待API执行完成后再向下执行代码。
 
Promise出现的目的是解决Node.js异步编程中回调地域的问题(即嵌套多重函数)。
let promise = new Promise((resolve,reject) =>{
.catch(error =>console.log(error));
分离异步API执行和错误分离
获取本地文件夹内容:const fs = require(‘fs‘);
项目实战
const fs = require(‘fs‘);
fs.readFile(‘./1.txt‘,‘utf8‘,(err,result1) =>{
    console.log(result1);
    fs.readFile(‘./2.txt‘,‘utf8‘,(err,result2)=>{
        console.log(result2);
        fs.readFile(‘./3.txt‘,‘utf8‘,(err,result3) =>{
            console.log(result3);
        })
    })
})*/
function p1(){
    return new Promise ((resolve, reject) => {
        fs.readFile(‘./1.txt‘,‘utf8‘,(err, result) => {
            resolve(result)
        })
    });
}
function p2(){
    return new Promise((resolve,reject)=>{
        fs.readFile(‘./2.txt‘,‘utf8‘,(err,result)=>{
            resolve(result);
        })
    })
}
function p3(){
    return new Promise((resolve,reject)=>{
        fs.readFile(‘./3.txt‘,‘utf8‘,(err,result)=>{
            resolve(result);
        })
    })
}
p1().then((r1)=> {
    console.log(r1);
    return p2();
})
    .then((r2)=>{
        console.log(r2);
        return p3()
    })
    .then((r3)=>{
        console.log(r3)
    })
下一篇:ftp上传单一文件示例